2010-03-03 13 views

risposta

716

È possibile impostare questo valore in un file xml di layout utilizzando android:divider="#FF0000". Se stai cambiando il colore/drawable, devi impostare/ripristinare anche l'altezza del divisore.

<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> 
+11

Si dovrebbe anche essere in grado di specificare un ' Risorse disegnabili in 'android: divider' pure. Il divisore esistente è un gradiente. – CommonsWare

+0

dove si trova il divisore del gradiente esistente? – ninjasense

+58

Se lo fai in XML assicurati di vedere anche l'altezza usando android: dividerHeight altrimenti non otterrai nessuna riga –

159

Oppure si può codificarlo:

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

Speranza che aiuta

+0

Perfetto, i miei oggetti erano su uno sfondo sfumato rossastro e il tuo effetto li ha resi magnifici !! – Darkendorf

+1

se si estende ListActivity, sostituire mylist con getListView() – Aziz

83

Per un singolo uso linea di colore:

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

E 'importante che DividerHeight viene impostato dopo la divisore, altrimenti non otterrete nulla.

+1

Grazie, ho chiamato setDividerHeight() prima di setDivider() e non è stato visualizzato alcun divisore. –

+3

Commento molto utile sull'ordine delle operazioni. Ho appena trascorso 2 ore cercando di farlo funzionare. Bel design, Android. –

10

È possibile anche ottenere i colori dei tuoi risorse utilizzando:

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

Usa android:divider="#FF0000" e android:dividerHeight="2px" per ListView.

<ListView 
android:id="@android:id/list" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:divider="#0099FF" 
android:dividerHeight="2px"/> 
9

Versione XML per @ Asso Aslan effetto fresco.

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

nome per tale forma come: list_driver.xml nella cartella drawable

<ListView 
     android:id="@+id/category_list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:divider="@drawable/list_driver" 
     android:dividerHeight="5sp" /> 
4

Ci sono due modi per fare la stessa:

  1. è possibile impostare il valore di Android : divisore = "# FFCCFF" nel file di layout xml. Con questo devi anche specificare l'altezza del divisore come questo 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. Si può anche fare questo livello di programmazione ...

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

Usa sotto il codice nel file XML

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

È meglio spiegare un po 'perché la tua soluzione funziona. Le risposte al solo codice potrebbero risolvere il problema, ma questo non risponde necessariamente alla domanda del richiedente. – SuperBiasedMan

Problemi correlati