在ListView中取消选择所选项目

Ron*_*Ron 18 android android-layout android-listview android-selector

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" />
Run Code Online (Sandbox Code Playgroud)

选择器工作得很好,但如何禁用选择器?

我试过了:

listView.clearChoices();
listView.setSelected();
listView.setSelector();
...
Run Code Online (Sandbox Code Playgroud)

还有一些东西,但没有任何作用.我有什么想法可以将我选择的项目恢复正常吗?不能那么复杂吧?

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

谢谢!

M-W*_*eEh 33

打电话requestLayout()ListViewclearChoices().它会工作.

  • 对我来说,它在`clearChoices()`之后使用`adapter.notifyDataSetChanged()` (8认同)

Sur*_*gch 11

正如上面提到的@Muerte,做以下工作对我有用:

myListView.clearChoices();
myAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

这似乎比重绘整个布局更好.