2011-03-30 15 views
5

He creado mis propios objetos de preferencias personalizadas que amplían Preferencia. Solo los he creado porque no hay Preferencias para estos tipos de datos personalizados.¿prefijo horizontal de preferencia android en preferencia personalizada?

Todo está funcionando, pero mis preferencias personalizadas no tienen el mismo aspecto porque les falta el divisor horizontal que tienen los objetos de preferencia del sistema. He buscado el código que está creando el divisor horizontal, pero no puedo encontrar dónde se hace.

El divisor integrado no es solo una barra delgada. Hay un poco de gradiente. Estoy pensando que esto puede estar en un archivo de diseño, pero no puedo encontrar los diseños para las preferencias del sistema.

¿Alguien tiene una idea de cómo se implementa esto?

Respuesta

3

Publicación muy antigua, pero para aquellos que tropiezan con esto. No estaba seguro de si el OP estaba preguntando cómo cambiar el divisor o de dónde vienen las imágenes del divisor. Entonces me dirigiré a ambos.

Cómo
Preferences utiliza un ListView para poblar todas las preferencias individuales. Eso significa que puede cambiar el divisor utilizando el método .setDivider() desde ListView. Un PreferenceActivity ya tendrá el método getListView() para usted. Sin embargo, para PreferenceFragments simplemente use el ID android.R.id.list para encontrarlo.

Si no desea cambiar el divisor a través del código, siempre puede utilizar un tema anulando el atributo listDivider. Por ejemplo:

<item name="android:listDivider">@drawable/custom_divider</item> 

Nota, que va a cambiar el divisor para CADA ListView en su aplicación.

Dónde
El dibujable listDivider utilizado depende de lo que se activa el tema Android. Encontrará todas estas imágenes en el SDK de Android instalado en este lugar:
[Android SDK]/plataformas/[API]/datos/res/drawable- [DPI]/

Sólo hacer una búsqueda de `* divider_horizontal *`, y aparecerán bastantes. Tienen nueve parches y no todos son colores sólidos.

Cuestiones relacionadas