如何为ListView项设置高亮颜色?

use*_*760 7 java android

我必须为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>
Run Code Online (Sandbox Code Playgroud)

项目布局代码:

<?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>
Run Code Online (Sandbox Code Playgroud)

选择器代码:

<?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> 
Run Code Online (Sandbox Code Playgroud)

color.xml的代码:

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


</resources>
Run Code Online (Sandbox Code Playgroud)

但我有一个问题:ListView项目不会通过点击改变颜色!它总是有白色.我哪里弄错了?

San*_*eer 26

这是你如何做到的:

首先,在你的ListView,请注意以下几点:

 android:listSelector="#00000000"
Run Code Online (Sandbox Code Playgroud)

这使得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" >
Run Code Online (Sandbox Code Playgroud)

几天前我遇到了同样的问题,我花了很多时间来解决这个问题.希望它对你有用!

  • 有两行包含`android:background.请改正 (4认同)