Android: définir l'élément de vue de liste comme "sélectionné" (en surbrillance)
Dans mon application je veux faire quelque chose de similaire à l'application gmail sur les tablettes, dans la gauche pour avoir la liste des éléments et dans le droit à un fragment avec le contenu de cet élément, comme pour l'application gmail ce contenu est téléchargé après la sélection. Après je clique sur un article que je veux qu'elle le reste en surbrillance jusqu'à ce que, bien sûr, j'ai changer la sélection.
J'ai atteint un point où cela fonctionne, mais seulement si je clique deux fois sur le même point, j'ai tout d'abord cliquez sur, de la sélection et de l'élément revient à sa valeur "par défaut" de l'état et si je clique à nouveau sur elle, le sélecteur (pour l'état sélectionné est visible.
C'est ce que j'ai à ce jour:
1) Le sélecteur (listitem_background.xml)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/solid_white" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@drawable/listitem_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/listitem_focused" android:state_selected="true"/>
</selector>
2) Pour le top linéaire de la mise en page de l'élément de la liste:
android:background="@drawable/listitem_background"
(J'ai essayé le réglage de ce que listselector)
3) C'est la ListView:
<ListView
android:id="@+id/my_list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:dividerHeight="1dp"
android:drawSelectorOnTop="true"
android:fadeScrollbars="true"
android:fastScrollEnabled="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollbarFadeDuration="100"
android:scrollbars="vertical" />
4) Dans la partie code, j'ai essayé de jouer avec cela:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.setSelected(true);
...
}
[EDIT] En fait j'ai remarqué que la sélection est perdue après la validation du fragment dans le côté droit de l'écran. Si je n'ai pas commettre le fragment, il fonctionne comme un charme...
Je pense que j'ai besoin de quelque chose comme cela dans le sélecteur:
<item android:drawable="@drawable/listitem_focused" android:state_activated="true" android:state_focused="false"/>
Mais, évidemment, pas ce...
source d'informationauteur Ciprian
Vous devez vous connecter pour publier un commentaire.
OK, enfin eu ma réponse.
L'idée est d'utiliser le state_activated dans le sélecteur et
dans le code, ou
dans le xml, bien sûr
C'est comment le sélecteur doit ressembler à:
C'est la façon dont l'élément de la liste mise en page doit être:
J'ai fait face à la même question, et puis j'ai juste besoin d'une simple ligne de mon point de vue xml.
android:background="?android:attr/activatedBackgroundIndicator"
Ce post pourrait aider