web-dev-qa-db-fra.com

Comment changer la couleur de la ligne de séparateur Android ListView?

Je veux changer la couleur de la ligne ListView separator. Toute aide serait appréciée.

391
UMAR

Vous pouvez définir cette valeur dans un fichier XML de mise en page à l'aide de Android:divider="#FF0000". Si vous changez la couleur/dessinable, vous devez également définir/réinitialiser la hauteur du diviseur.

<LinearLayout
  xmlns:Android="http://schemas.Android.com/apk/res/Android"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content">

  <ListView 
    Android:id="@+id/Android:list"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:divider="#FFCC00"
    Android:dividerHeight="4px"/>

</LinearLayout>
759
JeremyFromEarth

Ou vous pouvez le coder:

int[] colors = {0, 0xFFFF0000, 0}; // red for the example
myList.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
myList.setDividerHeight(1);

J'espère que ça aide

160
Asher Aslan

Pour une seule ligne de couleur, utilisez:

list.setDivider(new ColorDrawable(0x99F10529));   //0xAARRGGBB
list.setDividerHeight(1);

Il est important que DividerHeight soit placé après le séparateur, sinon vous n'obtiendrez rien.

86
htafoya

Vous pouvez également obtenir les couleurs de vos ressources en utilisant:

dateView.setDivider(new ColorDrawable(_context.getResources().getColor(R.color.textlight)));
dateView.setDividerHeight(1);
11
BitBlt

Version XML pour l'effet cool @Asher Aslan.

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

    <gradient
        Android:angle="180"
        Android:startColor="#00000000"
        Android:centerColor="#FFFF0000"
        Android:endColor="#00000000"/>

</shape>

Nommez cette forme comme: list_driver.xml sous le dossier pouvant être dessiné

<ListView
        Android:id="@+id/category_list"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent" 
        Android:divider="@drawable/list_driver"
        Android:dividerHeight="5sp" />
10
Peter Nguyen

Il y a deux façons de faire la même chose:

  1. Vous pouvez définir la valeur Android: divider = "# FFCCFF" dans le fichier XML de mise en page. Avec cela, vous devez également spécifier la hauteur du diviseur comme ceci Android: dividerHeight = "5px".

    <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">
    
      <ListView 
      Android:id="@+id/lvMyList"
      Android:layout_width="match_parent"
      Android:layout_height="match_parent"
      Android:divider="#FFCCFF"
      Android:dividerHeight="5px"/>
    
    </LinearLayout>
    
  2. Vous pouvez également le faire par programme ...

    ListView listView = getListView();
    ColorDrawable myColor = new ColorDrawable(
        this.getResources().getColor(R.color.myColor)
    );
    listView.setDivider(myColor);
    listView.setDividerHeight();
    
6
Aj 27

Utilisez le code ci-dessous dans votre fichier XML

<ListView 
    Android:id="@+id/listView"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:divider="#000000" 
    Android:dividerHeight="1dp">
</ListView> 
2
Mahesh Suthar

// Set ListView divider color lv.setDivider(new ColorDrawable(Color.parseColor("#FF4A4D93"))); // set ListView divider height lv.setDividerHeight(2);

en utilisant xml

<LinearLayout
  xmlns:Android="http://schemas.Android.com/apk/res/Android"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content">

  <ListView 
    Android:id="@+id/Android:list"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:divider="#44CC00"
    Android:dividerHeight="4px"/>

</LinearLayout>
1
ORBIT

Utilisez Android:divider="#FF0000" et Android:dividerHeight="2px" pour ListView.

<ListView 
Android:id="@Android:id/list"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:divider="#0099FF"
Android:dividerHeight="2px"/>
0
Aby Mathew