2012-06-19 14 views
29

Próbuję ustawić margines dla dzielnika listview.
Dzielnik jest linia przerywana:Wyświetlany margines podziału

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

    <size android:height="3dp" /> 

</shape> 

i listview gdzie ustawić dzielnik

<ListView 
    android:id="@+id/lv_news_feed_list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/white" 
    android:divider="@drawable/ch_dashed_line_divider" 
    /> 

ale chcę dzielnik margines lewy i prawy. Próbowałem również ustawić dopełnienie kształtu, ale listview ignoruje dopełnienie.

<padding 
     android:bottom="15dp" 
     android:left="15dp" 
     android:right="15dp" 
     android:top="15dp" /> 

Czy istnieje możliwość ustawienia marginesu do listview dzielnika - z wyjątkiem getView() adaptera?

+0

Najlepsze rozwiązanie: http://stackoverflow.com/questions/14054364/how-to-assign-padding-to-listview-item-divider-line?lq=1 – ASP

Odpowiedz

81

blat jest droga

<?xml version="1.0" encoding="UTF-8"?> 
<inset xmlns:android="http://schemas.android.com/apk/res/android" 
    android:insetLeft="15dp" 
    android:insetRight="15dp" > 

    <shape 
     android:shape="line" > 
     <stroke 
      android:dashGap="1dp" 
      android:dashWidth="1.5dp" 
      android:width="1dp" 
      android:color="#FF404040" /> 

      <size android:height="3dp" /> 

    </shape> 

</inset> 
+0

Łatwo najlepsza odpowiedź tutaj. Właśnie do tego służy wbudowana struktura XML. – Adam

+7

Jeśli chcemy tylko linii, użyj i ustaw właściwość "android: dividerHeight" w ListView – Maragues

3

U można używać Gradient aby uzyskać margines na prawo i lewo zamiast udaru .. Spróbuj próbkę ona zaczyna i kończy się czarny, w środku Bedziesz dostać white .. Wydaje się, jakby u've podane margines

<gradient android:startColor="#000000" android:centerColor="#ffffff" 
    android:endColor="#000000" /> 
+0

To jest dobre rozwiązanie , ale potrzebuję obrysu linii przerywanej w dzielniku, więc nie mogę użyć gradientu. – Fabian

1

ja nie wierzę w to jest możliwe:/Mimo, że jeśli dodać własną rozciągliwej na dole każdego elementu listy i usunąć ListViews dzielnik można dostosować go jednak chcesz :)

Tworzenie folderu res/do rysowania i tworzenia nowego xml:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <solid android:color="#666666"></solid> 

</shape> 

.. Następnie użyj tego elementu, który można wyciągnąć w tobie.

Albo naprawdę szybki i brudny sposób byłoby OFC tworzyć cienką LinearLayout (lub jakiś inny układ) z kolorowym tle w dolnej części elementu listy udawać konfigurowalny ListView dzielnika ..

Nie właściwa sollution , zaledwie kilka pomysłów Fixit;)

+0

To był mój pierwszy pomysł. Podłącz go sam w adapterze, ale nie wiem, czy to jest peformant. – Fabian

+0

Wypróbuj i zobacz;) Lub stwórz własny niestandardowy ListView, choć wątpię, czy byłby to warte problemów. – DecodeGnome

5

można użyć następujący pomysł:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape android:shape="rectangle"> 
     <solid android:color="@color/table_background"/> 
    </shape> 
</item> 
<item android:left="2dp" android:right="2dp"> 
    ... your shape here ... 
</item> </layer-list> 

To działa na mnie. Mam nadzieję, że to pomoże.

16

Przymież 'wstawki' .....

(list_divider.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<inset xmlns:android="http://schemas.android.com/apk/res/android" 
    android:insetLeft="50dp" 
    android:insetRight="50dp" > 

<shape> 
    <solid android:color="@color/orange" /> 
    <corners android:radius="2.0dip" /> 
</shape> 

</inset> 

aw twojej liście dodać tak ...

<ListView 
    android:dividerHeight="2dp" 
    android:divider="@drawable/list_divider" 
    ... 
/> 

możesz ustawić wartość wstawki a s pożądane ...

+1

You może umieścić element '' bezpośrednio w "kształcie", aby uniknąć powtarzania wysokości dla każdego widoku listy. – Natix