我在布局中使用ListView
,如下所示:
<ListView android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:layout_height="match_parent"
android:layout_weight="0.7"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:layout_centerInParent="true"
android:divider="@color/dark_grey"
android:drawSelectorOnTop="false"
android:focusable="true"
android:layout_marginBottom="55dp"
android:cacheColorHint="#00000000"
android:listSelector="@color/light_grey"
android:dividerHeight="1px" />
选择器工作得很好,但我如何禁用选择器?
我试探着:
listView.clearChoices();
listView.setSelected();
listView.setSelector();
...
又做了一些事情,但是没有任何效果。有什么想法可以让我选择的项目恢复正常吗?不会那么复杂吧?
**编辑:**我需要一个编程解决方案!
8条答案
按热度按时间lsmepo6l1#
在
clearChoices()
之后调用ListView
上的requestLayout()
。它将工作。iq0todco2#
正如上面提到的@Muerte,做以下事情对我很有效:
这似乎比重新绘制整个布局要好。
4dbbbstv3#
对我来说,它适用于:
omqzjyyz4#
在声明ListView的XML中用途:
rqcrx0a65#
您可以在单击后设置选择器:
而@drawable/transparent_白色是#00ffffff
jgovgodb6#
试试这个
创建您自己的选择器xml文件,如下所示
YourSelector.xml
查看此链接
here
ztmd8pv57#
没有一个解决方案对我有效。我的列表视图用于列出搜索到的项目,并提供了重做搜索的功能。在得到结果后,我添加了以下代码片段,它起作用了:)
设置选定索引(-1);
kyvafyod8#
你的选择器资源似乎是错误的。你应该使用一个有透明背景的drawable,我认为这是你的行的实际颜色,而不是
ListView
的choiceMode
。请检查这另一个答案以获得更多细节。