J'essaie de définir une marge sur un diviseur listview
.
Le séparateur est une ligne pointillée:
<?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>
et un listview
où je mets le diviseur
<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"
/>
mais je veux un diviseur marge gauche et droite. J'ai également essayé de définir un rembourrage à la forme, mais le listview
ignore le rembourrage.
<padding
Android:bottom="15dp"
Android:left="15dp"
Android:right="15dp"
Android:top="15dp" />
Existe-t-il une possibilité de définir une marge sur le diviseur listview
- sauf dans getView () de l'adaptateur?
L'encart est le chemin à parcourir
<?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>
Utilisez 'encart' .....
(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>
et dans votre liste, ajoutez comme ceci ...
<ListView
Android:dividerHeight="2dp"
Android:divider="@drawable/list_divider"
...
/>
vous pouvez définir la valeur d'encart comme vous le souhaitez ...
Vous pouvez utiliser l'idée suivante:
<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>
Ça marche pour moi. J'espère que cela vous aidera.
U peut utiliser Gradient pour obtenir la marge droite et gauche au lieu du trait .. Essayez cet exemple, il commence et se termine par du noir, au centre vous obtiendrez du blanc .. Il semble que vous ayez donné une marge
<gradient Android:startColor="#000000" Android:centerColor="#ffffff"
Android:endColor="#000000" />
Je ne pense pas que ce soit possible:/Bien que si vous ajoutez votre propre dessinable au bas de chaque élément de la liste et supprimez le séparateur ListViews, vous pouvez le personnaliser comme vous le souhaitez :)
Créez le dossier res/drawable et créez un nouveau 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>
..Ensuite, utilisez ce dessin dans votre élément de liste.
Ou un moyen très rapide et sale serait de créer un mince LinearLayout (ou une autre mise en page) avec un arrière-plan coloré en bas de l'élément de liste pour simuler un diviseur ListView personnalisable.
Pas une bonne solution, juste quelques idées fixes;)