3

C'est ce que j'utilise pour sélecteur d'élément de liste:point presse à long transition

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" 
<item android:drawable="@color/red" android:state_pressed="true"/> 
<!-- pressed --> 
<item android:drawable="@color/green" android:state_pressed="false"/> 
<!-- normal --> 
</selector> 

J'ai permis un menu contextuel pour les éléments ListView si un utilisateur peut à long cliquer sur un élément. Ce que je veux, c'est que lorsqu'un utilisateur clique longuement sur un élément, la couleur passe du vert au rouge. Comment puis-je y parvenir?

+1

Vous pouvez utiliser un ['Transition (Drawable)'] (http://developer.android.com/guide/topics/resources/drawable-resource.html#Transition) pour accomplir ceci. Pour un exemple concret, jetez un coup d'œil à la [transition] (https://github.com/JakeWharton/ActionBarSherlock/blob/master/actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_light.xml) qui fait partie du sélecteur de liste dans ActionBarSherlock. –

Répondre

2

Vous pouvez utiliser list_selector_background comme, comme le suggère here

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:state_window_focused="false" android:drawable="@android:color/transparent" /> 
     <!-- 
       Even though these two point to the same resource, have two states so 
       the drawable will invalidate itself when coming out of pressed state. 
     --> 
     <item android:state_focused="true" android:state_enabled="false" 
       android:state_pressed="true"  android:drawable="@drawable/list_selector_background_disabled" /> 
     <item android:state_focused="true" android:state_enabled="false" 
       android:drawable="@drawable/list_selector_background_disabled" /> 
     <item android:state_focused="true" android:state_pressed="true" 
       android:drawable="@drawable/list_selector_background_transition" /> 
     <item android:state_focused="false" android:state_pressed="true" 
       android:drawable="@drawable/list_selector_background_transition" /> 
     <item android:state_focused="true" 
       android:drawable="@+drawable/list_selector_background_focus" /> 
</selector> 

Et utiliser une transition pour la presse longue, comme le suggère here: -

<transition xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/list_selector_background_pressed" /> 
    <item android:drawable="@drawable/list_selector_background_longpress" /> 
</transition> 

Peut-être cela vous aidera ..

+0

J'ai essayé ceci. Ça n'aide pas! –

+0

l'avez-vous compris? J'ai le même problème, le code semble bon mais la transition ne se fait pas, seule la première couleur est utilisée en appui long. –

Questions connexes