我有ListView,包含以下XML:
<ListView
android:id="@+id/tools_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toStartOf="@+id/sketch_background"
android:scrollbars="none"
android:choiceMode="singleChoice"
android:listSelector="@color/dark_blue">
</ListView>
突出显示何时选择项目并在单击另一个项目后突出显示更改。但是我希望以某种方式(或者再次点击项目时)以编程方式清除该选择。
现在问题出现了:我发现的方法似乎都没有。我试过了:
tools.clearChoices();
tools.clearFocus();
tools.setSelection(-1);
tools.setItemChecked(-1, true);
然后更新适配器数据,请求布局等。只有工作是创建新的适配器,但它导致列表到顶部。知道我做错了吗?
答案 0 :(得分:0)
好吧,似乎唯一的问题是位置一直被标记。通过手动设置和清除背景解决了这个问题:
toolsDrawer.getChildAt(toolsDrawer.getCheckedItemPosition()).setBackgroundColor(Color.TRANSPARENT);
toolsDrawer.clearChoices();
并从xml中删除android:listSelector。