Come posso impostare la larghezza del mio divisore ListView personalizzato, in modo che sia più piccolo della larghezza della mia riga?Come impostare la larghezza del divisore ListView?
risposta
Effettuare un png di 9 patch con pixel trasparenti a sinistra ea destra. Ad esempio, un 53x4 .9.png con 25 pixel trasparenti su entrambi i lati (da + pixel a 9patch) estenderebbe 1 pixel in modo che ci siano 25 pixel su entrambi i lati.
Si dovrebbe essere in grado di chiamare
mListView.setDivider(Drawable d);
e passargli un drawable che è possibile includere nel vostro res/cartelle disegnabili. Se vuoi farlo quasi completamente, puoi creare una patch 9 che contenga una linea orizzontale con la massima trasparenza sui lati sinistro e destro che desideri. E impostalo per allungare la parte centrale della linea.
Se non si vuole fare 9 patch, quindi è possibile inserire
<View android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginTop="4dp" android:background="#33B5E5" />
nel codice XML di list_item. Crea una linea blu e puoi facilmente controllare la larghezza di questa linea. Per rendere questo successo dovresti disabilitare il divisore di listview. Quale è dato here
A RecyclerView
è generalmente preferito rispetto all'utilizzo di un ListView
ora. Vedere this Q&A per come impostare la larghezza del divisore in un RecyclerView
.
Usa <inset>
drawable/list_divider.xml
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="10dp"
android:insetRight="10dp" >
<shape android:shape="rectangle" >
<solid android:color="@color/list_divider_color" />
</shape>
</inset>
E nel layout:
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:divider="@drawable/list_divider"
android:dividerHeight="1dp" >
</ListView>
Fonti:
Ho provato questo. Ma sovrappone il mio divisore personalizzato a quello predefinito. Qualche idea del perché? – Zen
@Suragch ci scusiamo per l'offtopic, ma non ho trovato alcuna menzione nella documentazione riguardante la deprecazione di 'ListView'. Capisco il tuo pensiero dietro queste parole, ma penso che potrebbe confondere qualcuno. Tuttavia, ottima risposta. – Viacheslav
@Viacheslav, grazie. Ho corretto la mia formulazione. – Suragch
Lasciare '' width' a match_parent' e impostare un margine sinistro o destro. –