2010-11-08 9 views
13

me las arreglé para encontrar la manera de crear una forma personalizada (con un trazo discontinuo) mediante la creación de un archivo llamado dash.xml interior de las /app/res/estirable/ carpeta:¿Cómo creo un ListView con divisores de líneas punteadas/punteadas en Android?

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 
    <stroke 
     android:color="#534b4b" 
     android:width="1dp" 
     android:dashGap="2dp" 
     android:dashWidth="1dp" 
    /> 
    <size 
     android:height="1dp" 
    /> 
</shape> 

Ahora estoy confundido sobre cómo aplicar esta forma a un ListView. He intentado lo siguiente, pero no se muestra ningún divisor:

<ListView android:id="@+id/android:list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:cacheColorHint="#00000000" 
    android:divider="@drawable/dash" 
    android:dividerHeight="1dp" 
/> 

Wtf?

Respuesta

34

Aquí es mío y funciona:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 
    <stroke 
     android:color="#FF404040" 
     android:width="1dp" 
     android:dashGap="3dp" 
     android:dashWidth="1dp" 
    /> 
    <size 
     android:height="3dp" 
    /> 
</shape> 
+11

También es posible que necesite agregar android: layerType = "software" al nodo que hace referencia a la forma. Al menos en algunos dispositivos, la línea de puntos aparecerá sólida. – Steven

+0

Como ejemplo de un dispositivo en el que layerType resuelve un problema de línea continua es Nexus 5 con 4.4.3. –

+0

¡Debe ser la respuesta aceptada! trabajo impresionante –

6

También necesita android:dividerHeight. Las formas son de tamaño variable, y ahora tienes un divisor de altura cero.

+0

Shoot, se me olvidó añadir que en el ejemplo anterior, pero cuando las pruebas, se incluyó una dividerHeight. ¡Gracias por señalar eso! – iamkoa

2
  1. Definir layerType para la demostración del divisor de la línea de puntos no se olvide de dar a la altura del divisor.

<ListView android:id="@+id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000" android:divider="@drawable/dash" android:dividerHeight="1dp" android:layerType="software"/>

Cuestiones relacionadas