2012-01-28 2 views
1

Je souhaite ajouter un dégradé pour chaque ligne. Ce que j'ai essayé de faire est sur l'étiquette listview mettre cet attribut, android: background = "@ drawable/mygradient". Mais tout ce que je reçois est ce dégradé affiché tout au long de la liste. Ce que je veux, c'est que ce dégradé soit affiché pour chaque objet.Android: ListView ajouter un dégradé pour chaque ligne

Merci à l'avance

+0

Avez-vous utilisé la liste personnalisée? code essayé peut aider à donner des réponses, afficher le code – Abhi

+0

Affiché le long de la liste ... Comment ça ressemble? Pouvez-vous poster une capture d'écran? –

Répondre

1

Vous pouvez fournir un adaptateur personnalisé pour votre afficher la liste et définir le dégradé comme arrière-plan dans sa méthode getView. Quelque chose comme ceci:

public class MyAdapter extends BaseAdapter { 
    List<MyDataType> myData; 
    Context context; 

    public MyAdaptor(Context ctx, List<MyDataType> myData) { 
     this.myData = myData; 
     this.context = ctx; 
    } 

    public int getCount() { return myData.size() }; 
    public Object getItem(int pos) { return myData.get(pos); } 
    public long getItemId(int pos) { return 0L; } 

    public View getView(int pos, View convertView, ViewGroup parent) { 
     //this is where you can customise the display of an individual 
     //list item by setting its background, etc, etc. 

     ... 

     //and return the view for the list item at the end 
     return <List item view>; 
    } 
} 

Ensuite, vous pouvez définir cet adaptateur que l'adaptateur pour votre liste:

ListView myList = <initialise it here> 
myList.setAdapter(new MyAdapter(getContext(), listData); 

maintenant chaque fois qu'un élément de la liste doit être affichée, la méthode getView sera appelée, où vous ll effectuera toute la personnalisation d'affichage nécessaire, y compris la configuration de l'arrière-plan.

+0

il m'a fallu 2 jours, mais à la fin, j'ai réussi à le faire. Je n'étais pas habitué à l'adaptateur personnalisé, donc cela a été difficile. En tout cas, merci pour votre aide, cela a été très utile. – user1139368

+0

Et plus d'un an plus tard, il n'est toujours pas marqué comme la réponse = / –

0

Au lieu de mettre en arrière-plan propriété Ramenez de la liste, comme ci-dessous:

android: listSelector = "@ drawable/list_selector_background"

+0

Cela ne semble fonctionner que lorsqu'un élément est sélectionné. – sdasdadas

Questions connexes