如何设置ListView项目的高亮颜色?

我必须为ListView项目制作另一个高亮颜色。 我使用自定义适配器的项目,我有以下代码:

布局:

<?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> 

项目布局代码:

 <?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> 

代码select器:

 <?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> 

color.xml的代码:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="green">#006400</color> <color name="white">#FFFFFF</color> </resources> 

但我有一个问题:ListView项目不会改变颜色点击! 它总是有白色的。 我在哪里犯错了?

Solutions Collecting From Web of "如何设置ListView项目的高亮颜色?"

这是你如何做到的:

首先,在你的ListView ,放置如下:

  android:listSelector="#00000000" 

这使得你的listSelector(你点击列表视图时通常看到的颜色)透明。

接下来,将项目布局的LinearLayout设置为:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/selector" android:orientation="horizontal" > 

前几天我也遇到了同样的问题,花了好些时间才弄清楚了。 希望它适合你!

你可以尝试添加:android:drawSelectorOnTop =“true”来定义ListView。

希望对你有帮助!

PS您可以优化您的主布局,并删除不必要的布局。 你可以使用layoutopt来做到这一点。