我有ListView
的代码:
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/searchButton"
android:divider="@color/DarkGoldenrod"
android:dividerHeight="0.1dp"
android:background="@drawable/list_selector"
android:choiceMode="singleChoice" />
这是drawable的代码 - list_selector
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime">
<item android:drawable="@android:color/holo_green_dark" android:state_pressed="true"/>
<item android:drawable="@android:color/holo_blue_light" android:state_selected="true"/>
<item android:drawable="@android:color/holo_orange_light" android:state_activated="true"/>
</selector>
此选择器正在应用于整个列表视图,如何将其应用于各个列表项?
谢谢。
答案 0 :(得分:1)
列表选择器适用于整个listview
,如果您为列表视图行充气,然后将该样式应用于该总视图布局。另外在onListitemClick方法中,它将为我们提供一个视图应用您的drawable view.setBackgroundResource(resid)
答案 1 :(得分:0)
使用listSelector而不是background
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/searchButton"
android:divider="@color/DarkGoldenrod"
android:dividerHeight="0.1dp"
android:listSelector="@drawable/list_selector"
android:choiceMode="singleChoice" />
答案 2 :(得分:0)
我认为你应该在点击它时检查元素的类型。并在适配器中更改此项目的背景。
答案 3 :(得分:0)
列表视图选择器将应用于整个视图,因为它获得焦点。为了将其应用于视图的一部分,那么在这种情况下,在用于充气的布局内的视图上应用drawable列表视图。
那是: 假设你有一个相对布局和一个textview,然后将drawable设置为textview并设置为“setFocusable”为true,setfocusableon为textview设置为true。
试试这个。