2011-05-26 2 views
0

J'ai un sélecteur ListView personnalisé qui dessine au-dessus d'un ListView. Cela fonctionne bien, mais je veux que le texte à l'intérieur de la listview devienne blanc. Comment puis je faire ça?Comment créer une liste d'états pouvant être dessinée pour mes éléments ListView?

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:state_focused="true" 
     android:drawable="@drawable/stocks_gradient" /> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/swipeview_selected_gradient" /> 
    <item android:state_focused="true" 
     android:drawable="@drawable/swipeview_selected_gradient" /> 
</selector> 

Répondre

0

Vous devez appliquer une couleur ou un sélecteur spécifique à chaque élément de liste.

J'ai quelque chose comme ça (en abrégé)

layout/dash_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      style="@style/DashboardListItem"> 
    ... Your text components etc .... 

couleur/dashboard_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:state_focused="true" 
      android:drawable="@android:color/transparent" /> 
    <item android:state_pressed="true" 
      android:drawable="@color/dash_border_color" /> 
    <item android:state_focused="true" 
      android:drawable="@color/dash_border_color" /> 
</selector> 

valeurs/style.xml

<style name="DashboardListItem"> 
     <item name="android:background">@color/dashboard_selector</item> 
</style> 

Y Vous aurez probablement besoin de jouer avec pour savoir exactement où appliquer les choses. Cela peut probablement être simplifié. De toute façon, c'est juste une direction puisque je ne connais pas vos besoins spécifiques.

+0

Je ne suis pas sûr de ce que vous voulez dire? Comment puis-je ajouter un sélecteur à chaque élément de la liste? –

+0

Vous définissez des mises en page d'éléments de liste via l'adaptateur, n'est-ce pas? Dans tous les cas, vous devrez gonfler la mise en page pour les éléments de la liste. Cette mise en page serait celle qui contient votre texte. Donc, pour modifier la couleur de ce texte, vous devez appliquer un style ou un sélecteur à cette mise en page spécifique ou à ses composants. Si l'aspect du texte ne doit pas changer lors des clics ou de la mise au point, vous pouvez simplement définir 'textColor'. Si elle doit réagir à l'état alors vous auriez besoin d'un sélecteur. Je verrai si je trouve un exemple. –

+0

Ok, a ajouté quelques exemples. Peut être cela aidera. –

Questions connexes