Android - 在ListView中

时间:2016-07-21 17:07:40

标签: android listview xamarin.android

所以我有一个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;一。 (我试过检查过,正如我在一些样本中看到的那样)

如何使我的自定义布局视图可选?

2 个答案:

答案 0 :(得分:1)

实际上,要在列表视图中处理“已选择”状态,您必须使用已激活选择器(android:state_activated),例如:

<item android:state_activated="true" android:drawable="@drawable/ic_dep" />

当然,似乎没有记录在任何地方。但为什么,它如此直截了当?谢谢安卓

答案 1 :(得分:0)

在ListView android:background="@drawable/rowbackground"中添加此行,并且不要从自定义布局中删除此行。