ListView未清除选择

时间:2017-12-12 15:01:57

标签: android listview

我有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);

然后更新适配器数据,请求布局等。只有工作是创建新的适配器,但它导致列表到顶部。知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

好吧,似乎唯一的问题是位置一直被标记。通过手动设置和清除背景解决了这个问题:

    toolsDrawer.getChildAt(toolsDrawer.getCheckedItemPosition()).setBackgroundColor(Color.TRANSPARENT);
    toolsDrawer.clearChoices();

并从xml中删除android:listSelector。