所以我有一个ListView,呈现自定义视图(每个都带有图像+文本)。 我希望这些视图在用户选择时具有不同的外观。 (有一个叠加层,但现在我试着让它只用背景工作)
如果我使用Android.Resource.Layout.TestListItem
给行充气,它可以正常工作,单击时单元格会显示所选状态。
但是,我尝试使用自定义布局获得类似效果,但我无法使其工作。缺少什么?
我有这个视图布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rowbackground">
... (textview and image)
和rowbackground.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/bg_a" />
<item android:state_checked="true" android:drawable="@drawable/bg_b" />
<item android:state_pressed="true" android:drawable="@drawable/bg_c" />
<item android:state_selected="false" android:state_checked="false" android:state_pressed="false" android:drawable="@drawable/bg_d"/>
</selector>
但唯一有效的是&#34;默认&#34;并且&#34;按下&#34;状态。不是&#34;选择&#34;一。 (我试过检查过,正如我在一些样本中看到的那样)
如何使我的自定义布局视图可选?
答案 0 :(得分:1)
实际上,要在列表视图中处理“已选择”状态,您必须使用已激活选择器(android:state_activated
),例如:
<item android:state_activated="true" android:drawable="@drawable/ic_dep" />
当然,似乎没有记录在任何地方。但为什么,它如此直截了当?谢谢安卓
答案 1 :(得分:0)
在ListView android:background="@drawable/rowbackground"
中添加此行,并且不要从自定义布局中删除此行。