Tengo este codigo:
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cashItemsList"
android:cacheColorHint="#00000000"
android:divider="@drawable/list_divider"></ListView>
donde @drawable/list_divider
esta:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:width="1dp"
android:color="#8F8F8F"
android:dashWidth="1dp"
android:dashGap="1dp" />
</shape>
pero no puedo ver ningún divisor.
Respuestas:
Amigos, esta es la razón por la que debería usar 1px en lugar de 1dp o 1dip: si especifica 1dp o 1dip, Android lo reducirá. En un dispositivo de 120 ppp, eso se convierte en algo así como 0,75 px traducido, que se redondea a 0. En algunos dispositivos, eso se traduce en 2-3 píxeles, y generalmente se ve feo o descuidado
Para los divisores, 1 px es la altura correcta si desea un divisor de 1 píxel y es una de las excepciones para la regla de "todo debe estar sumergido". Será de 1 píxel en todas las pantallas. Además, 1px generalmente se ve mejor en pantallas hdpi y superiores
Edición "Ya no es 2012": es posible que tenga que cambiar a dp / dip comenzando con una cierta densidad de pantalla
fuente
Esta es una solución alternativa, pero me funciona:
Creado res / drawable / divider.xml de la siguiente manera:
Y en styles.xml para el elemento listview, agregué las siguientes líneas:
La parte crucial fue incluir esta configuración de 1px. Por supuesto, drawable usa gradiente (con 1px) y esa no es la solución óptima. Intenté usar el accidente cerebrovascular pero no lo conseguí. (Parece que no usa estilos, así que simplemente agregue el atributo android: dividerHeight = "1px" para ListView.
fuente
Agregue
android:dividerHeight="1px"
y funcionará:fuente
El problema que tiene se debe al hecho de que le falta android: dividerHeight, que necesita, y al hecho de que está tratando de especificar un grosor de línea en su elemento de dibujo, lo que no puede hacer con divisores para algunos extraña razón. Básicamente, para que su ejemplo funcione, puede hacer algo como lo siguiente:
Cree su dibujable como un rectángulo o una línea, ya sea que funcione, simplemente no puede intentar establecer ninguna dimensión en él, por lo que tampoco:
O:
Luego crea un estilo personalizado (solo una preferencia, pero me gusta poder reutilizar cosas)
Finalmente declare su vista de lista usando el estilo personalizado:
Supongo que sabe cómo usar estos fragmentos, si no, avíseme. Básicamente, la respuesta a su pregunta es que no puede establecer el grosor del divisor en el dibujable, debe dejar el ancho sin definir allí y usar android: dividerHeight para configurarlo.
fuente
Del doc:
Parece que se
setDividerHeight()
debe llamar para que aparezca el divisor si no tiene altura intrínsecafuente
Su
@drawable/list_divide
debe tener este aspecto:En su versión, proporciona un
android:width="1dp"
, simplemente cámbielo a unandroid:height="1dp"
y debería funcionar.fuente
Del doc :
Básicamente, usted tiene que poner un archivo llamado
list_divider.xml
enres/drawable/
lo que puede acceder a él comoR.drawable.list_divider
; si puede acceder a él de esa manera, puede usarandroid:divider="@drawable/list_divider"
en el XML paraListView
.fuente
Algunas personas pueden estar experimentando una línea continua. Lo solucioné agregando
android:layerType="software"
a la vista que hacía referencia al dibujable.fuente
Los documentos de Android advierten sobre cosas que desaparecen debido a un error de redondeo ... Quizás intente dp en lugar de px, y quizás también intente> 1 primero para ver si es el problema de redondeo.
ver http://developer.android.com/guide/practices/screens_support.html#testing
para la sección "Imágenes con 1 píxel de altura / ancho"
fuente
Tuve el mismo problema. Sin embargo, hacer la vista de 1px no parecía funcionar en mi Nexus 7 original. Noté que la densidad de la pantalla era 213, que es menor que los 240 utilizados en xhdpi. Entonces pensaba que el dispositivo tenía una densidad mdpi.
Mi solución fue hacer que la
dimens
carpeta tuviera undividerHeight
parámetro. Lo configuré2dp
en lavalues-mdpi
carpeta pero1dp
en lasvalues-hdpi
carpetas etc.fuente
olvidó una "r" al final del divisor en su diseño xml de divisor
llamas al diseño @ drawable / list_divider pero tu divisor xml se llama "list_divide"
fuente
establecer android: dividerHeight = "1dp"
fuente