l tamaño de título de preferencia personalizada de Android sale incorrecto en algunos dispositivos. ¿Cuál es el lugar correcto para recogerlo?
ste problema resultó ser mucho más complicado de lo que parecía al principio, ya que no era un problema en todos los dispositivos, sino en alguno
Al crear una Preferencia personalizada al convertirla en una subclase de Preferencia y también usar un diseño personalizado definido en un archivo XML en res / layout y usar ese diseño en onCreateView () en la Preferencia personalizada, parece que pierde completamente la información de diseño de la Preferencia -s normalmente tienen. No hay nada extraño con eso, pero si todavía quieres un título (junto con las cosas nuevas), ¿cómo especificas el tamaño de ese título si quieres que sea del mismo tamaño que para otras preferencias? Estaba seguro de que había encontrado la respuesta correcta, estableciendo textAppearance en textAppearanceLarge (ya sea en el archivo XML de diseño que parece la mejor manera o en el código Java en la clase de preferencia) y esto funciona bien en la mayoría de los dispositivos.
Esto es del archivo de diseño de preferencias personalizado:
<TextView
android:id="@+android:id/title"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
>
</TextView>
Y esto es de CustomPreference.onCreateView ():
LayoutInflater mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout layout = (RelativeLayout)mInflater.inflate(R.layout.custompreference, parent, false);
// Setting up new stuff
return layout;
Esto funciona y puedo cambiar el tamaño del título a Pequeño o Medio y no necesito ningún código Java para el título en la clase de Preferencia personalizada. textAppearanceLarge es 22dp, que parece ser el tamaño de los títulos de Preferencia en la mayoría de los dispositivos.
Pero en algunos, por ejemplo, el título de HTC Sensation an Desire S the Preference es más pequeño. El título de la preferencia personalizada sale demasiado grande en estos dispositivos. Por lo tanto, los diseños para las Preferencias no personalizadas claramente no usan textAppearanceLarge sino algo más.
Mi pregunta ahora es: ¿qué usan? ¿Dónde puedo conseguirlo para usar en mi preferencia personalizada? He buscado en Internet como loco, pero simplemente no encuentro la respuesta. Todos los ejemplos que puedo encontrar usan textAppearanceLarge (o simplemente 22dp), probablemente porque nadie se ha dado cuenta de que no siempre funciona correctamente.