退出选择模式后,ListView 选择将保持不变
2022-09-01 02:00:12
我有一个 ListView 子类,当上下文操作栏 (CAB) 处于活动状态时,我允许对其进行选择。CAB 设置为对事件的回调:onItemLongClick
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(context_menu, menu);
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
return true;
}
这很好,ListView 按预期工作,当前选定的项在触摸时保持突出显示状态。
当我关闭 CAB 时,我希望 ListView 恢复正常(即触摸模式)。问题是,无论我尝试使用哪种方法清除它,最后一个选定的项都会无限期地突出显示:
public void onDestroyActionMode(ActionMode mode) {
//Unselect any rows
ListView lv = getListView();
lv.clearChoices(); // Has no effect
lv.setChoiceMode(ListView.CHOICE_MODE_NONE); // Has no effect on the highlighted item
lv.setFocusable(false); // Has no effect
lv.setSelection(0); // Has no effect
mActionMode = null;
}
有什么建议吗?