2010-11-08 17 views
13

udało mi się dowiedzieć, jak utworzyć niestandardowy kształt (przerywaną udaru), tworząc plik o nazwie dash.xml wewnątrz z /app/RES/odkształcalne/ folder:Jak utworzyć ListView z przerywanymi liniami przerywanymi w systemie 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> 

Teraz jestem zdezorientowany, jak zastosować ten kształt do ListView. Próbowałem następujące, ale nie jest wyświetlana dzielnik:

<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?

Odpowiedz

34

Oto moje i to działa:

<?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

Może być również konieczne dodanie android: layerType = "software" do węzła odwołującego się do kształtu. Przynajmniej na niektórych urządzeniach linia przerywana będzie wyglądać na solidną. – Steven

+0

Jako przykład urządzenia, w którym layerType rozwiązuje problem linii ciągłej, znajduje się Nexus 5 z 4.4.3. –

+0

To musi być zaakceptowana odpowiedź! działa świetnie –

6

Potrzebujesz również android:dividerHeight. Kształty mają zmienną wielkość, a teraz masz dzielnik o zerowej wysokości.

+0

strzelać, zapomniałem dodać, że w moim przykładzie powyżej, ale gdy badania, o dividerHeight została uwzględniona. Dziękuję za wskazanie tego! – iamkoa

2
  1. Definiowanie layerType na pokaz linia przerywana dzielnik nie zapomnij podać wysokość dzielnik.

<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"/>

Powiązane problemy