Comment définir la couleur de mise en surbrillance l'élément ListView?
Je dois faire une autre couleur de mise en surbrillance l'élément ListView. J'utilise la coutume adaptateur pour les articles, et j'ai code suivant:
Mise en page:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:weightSum="1.0"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_weight="0.13"
android:background="@drawable/booklist_header"
android:orientation="horizontal"
android:layout_height="0dp" >
<ImageView
android:id="@+id/imageViewBookListBack"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:src="@drawable/back_button" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_weight="0.77"
android:layout_height="0dp" >
<ListView
android:id="@+id/listViewCurrentList"
android:listSelector="@drawable/selector"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayoutBooklistAdwhirl"
android:layout_width="fill_parent"
android:layout_weight="0.1"
android:layout_height="0dp" >
</LinearLayout>
</LinearLayout>
Code de la rubrique mise en page:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageViewBookListItemImage"
android:layout_width="120dp"
android:layout_marginTop="15dp"
android:layout_height="120dp" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="135dp"
android:layout_marginTop="15dp"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewBookListItemTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textColor="#000000"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textViewBookListItemAuthor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textColor="#000000"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</LinearLayout>
Code pour sélecteur:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@color/green" /> <!-- focused -->
<item android:state_focused="true" android:state_pressed="true" android:drawable="@color/green" /> <!-- focused and pressed-->
<item android:state_pressed="true" android:drawable="@color/green" /> <!-- pressed -->
<item android:drawable="@color/green" /> <!-- default -->
</selector>
Code pour color.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="green">#006400</color>
<color name="white">#FFFFFF</color>
</resources>
Mais j'ai un problème: élément de liste ne change pas de couleur par clic! Il est de couleur blanc toujours. Où ai-je fait une erreur?
OriginalL'auteur user1078760 | 2011-12-15
Vous devez vous connecter pour publier un commentaire.
C'est comment vous le faites:
Tout d'abord, dans votre
ListView
, mettre les éléments suivants:Cela rend votre listSelector (la couleur que vous voyez normalement lorsque vous cliquez sur le contrôle listview) transparent.
Ensuite, réglez le
LinearLayout
de votre élément de mise en page:J'ai eu le même problème il y a quelques jours et il m'a fallu les âges. Espérons que cela fonctionne pour vous!
Il y a deux lignes contenant
android:background
. Merci de corrigerOriginalL'auteur Sander van't Veer
Vous pouvez essayer d'ajouter ceci: android:drawSelectorOnTop="true" à la définition de la ListView.
Espérons que cela vous aidera!
P. S. Vous pouvez optimiser votre page principale et de supprimer les inutiles mises en page. Vous pouvez utiliser layoutopt pour cela.
Hmm, pour ce problème, vous pouvez vérifier ici une solution: stackoverflow.com/questions/2562051/.... Je vais aussi vérifier et revenir vers vous dès que possible.
OriginalL'auteur Dimitris Makris
OriginalL'auteur Ashwin H