19

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();
...

还有一些其他的东西,但没有任何效果。有什么想法可以让我选择的项目恢复正常吗?不可能这么复杂吧?

编辑:我需要一个编程解决方案!

谢谢!

4

8 回答 8

34

调用后。requestLayout()_ 它会起作用的。ListViewclearChoices()

于 2013-07-22T07:49:15.767 回答
11

正如上面提到的@Muerte,执行以下操作对我有用:

myListView.clearChoices();
myAdapter.notifyDataSetChanged();

这似乎比重新绘制整个布局要好。

于 2014-05-22T11:20:09.147 回答
4

对我来说,它适用于:

listView.setAdapter(myAdapter);
于 2016-05-20T19:55:39.590 回答
0

您可以在单击后设置选择器:

<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@drawable/transparent_white" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/transparent_white" android:state_focused="false" android:state_pressed="true"/>
<item android:drawable="@drawable/transparent_white" android:state_focused="true"/>
<item android:drawable="@drawable/transparent_white" android:state_focused="false"/>

@drawable/transparent_white 是 #00ffffff

于 2013-07-19T16:39:13.243 回答
0

尝试这个

像这样创建自己的选择器 xml 文件

你的选择器.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:state_focused="true"
        android:drawable="@drawable/item_disabled" />
  <item android:state_pressed="true"
        android:drawable="@drawable/item_pressed" />
  <item android:state_focused="true"
        android:drawable="@drawable/item_focused" />
</selector>

看看这个链接

这里

于 2013-07-19T16:44:05.087 回答
0

在您声明 ListView 使用的 XML 中:

<ListView android:id="@+id/my_list" android:listSelector="#00000000" />
于 2013-07-19T16:35:50.493 回答
0

您的选择器资源在这里似乎是错误的。您应该使用具有透明背景的可绘制对象,我认为这实际上是为您的行着色,但choiceMode不是ListView. 请查看另一个答案以获取更多详细信息。

于 2018-01-28T10:50:09.517 回答
0

没有任何解决方案实际上对我有用。我的列表视图用于列出搜索的项目,并提供重做搜索的规定。在获得结果时,我添加了以下代码片段并且它有效:)

myAdapter.setSelectedIndex(-1);

于 2017-03-14T06:08:51.403 回答