Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 列表背景的自定义选择器_Android_Android Listview - Fatal编程技术网

Android 列表背景的自定义选择器

Android 列表背景的自定义选择器,android,android-listview,Android,Android Listview,我正在尝试为listview中的每个项目设置一些自定义选择器状态。我试过以下方法“ list_selector.xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/row_selected_background" />

我正在尝试为listview中的每个项目设置一些自定义选择器状态。我试过以下方法“

list_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true"
          android:drawable="@drawable/row_selected_background" />
    <item android:state_activated="true"
          android:drawable="@drawable/row_selected_background" />
    <item android:state_focused="true"
          android:drawable="@drawable/row_selected_background" />
    <item android:drawable="@drawable/row_background" />
</selector>

list.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <ListView
            android:id="@android:id/list"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/row_background"
            android:listSelector="@drawable/list_selector">

    </ListView>
</RelativeLayout>


出于某种原因,列表中未选择的背景颜色与定义相同。但按下/单击时,列表的默认安卓全息蓝颜色始终不变。我做错了什么?

步骤1:

首先设置
行选择器.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
  <solid android:color="@android:color/holo_red_dark"/>
</shape>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/bg"/>
</selector>
第二步: 将选择器应用于项目,如下所示:

android:background="@drawable/row_selector"
第三步: 为列表创建一个选择器,
list\u selector.xml
,所有状态都是透明的,以摆脱默认状态

第4步: 将选择器应用于listview,如下所示


android:listSelector=“@drawable/list\u selector”
使用
android:state\u pressed
指定按下的状态


Drawable to use:
/res/Drawable/bg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
  <solid android:color="@android:color/holo_red_dark"/>
</shape>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/bg"/>
</selector>
列表视图:

    <ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:saveEnabled="true"
    android:listSelector="@drawable/item"
    />

按下列表项的结果:


注意:列表选择器绘制在项目视图后面,项目视图可能有自己的背景。

抱歉,这只是一个输入错误。如何将所有状态设置为透明?android:drawable=“@color/android:transparent”