2012-06-03 2 views
1

J'ai ajouté une boîte de dialogue personnalisée avec seulement un simple listView à l'intérieur.ListView ne montre pas la couleur par défaut

Je n'obtiens pas la couleur de sélection (qui apparaît normalement dans la vue de liste sans configuration supplémentaire) tout en appuyant sur un élément. Cliquez sur l'écouteur fonctionne, etc. Mais pas de couleur.

a également essayé de mettre explicitement un sélecteur:

list.setSelector(R.color.blue); 

Mais il ne se produit rien. J'ai essayé également de définir différentes couleurs d'arrière-plan pour la liste, toujours pas de couleur de sélection.

+0

S'il vous plaît Postez le XML dans votre drawable. – Sam

+0

avez-vous essayé 'android: listSelector =" @ drawable/list_selector "'? – Sajmon

Répondre

0

Il se peut que la ressource de couleur que vous avez créée ne fonctionne pas correctement car je peux modifier la couleur lors de la sélection d'un élément de liste, intégrée dans une boîte de dialogue personnalisée, en utilisant list.setSelector(R.color.blue);.

+0

setSelector() était juste un essai pour faire fonctionner la couleur. Je parle de la couleur par défaut qui est affichée sur les listes tout en appuyant sur. Edité le poste pour le rendre plus clair. – Ixx

0

J'ai le même problème. il fixe avec l'ajout:

StateListDrawable drawable = new StateListDrawable(); 
drawable.addState(new int[] { android.R.attr.state_pressed }, new ColorDrawable(Color.BLUE)); 
view.setBackgroundDrawable(drawable); 

adaptateur de ListViewgetView() procédé.

0

Ok Je suis en retard pour répondre à cette question mais j'ai trouvé la réponse réelle au cas où quelqu'un dans le futur chercherait la réponse. Les deux autres réponses ici n'ont pas fonctionné. J'ai donc un ListView qui a une ligne ListView personnalisée avec des drawables comme arrière-plan. Cela a fait en sorte que la surbrillance PRESSÉE par défaut ne clignote pas et ne s'allume pas, comme lorsque vous appuyez longuement sur. Qu'est-ce qui se passe est que le ListView dessine le sélecteur, si vous en avez un, sous la vue. Voici comment le corriger:

Up dans le onCreate:

// this sets the selector/pressed drawable or you could use a color or whatever 
listView.setSelector(getResources().getDrawable(R.drawable.listviewrow_pressed)); 

// this draws the selector drawable/color on top 
listView.setDrawSelectorOnTop(true); 
Questions connexes