我在尝试ListView
使用多选模式实现时发现了一个奇怪的问题。我CHOICE_MODE_MULTIPLE_MODAL
用来打开多选模式,并MultiChoiceModeListener
提供动作模式菜单和处理事件。这是我的代码:
ListView listView = (ListView) findViewById(R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.item,
new String[] {"111", "222", "333", "444", "555"});
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode actionMode, int i, long l, boolean b) {
}
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
MenuInflater inflater = actionMode.getMenuInflater();
inflater.inflate(R.menu.my_menu, menu); // my_menu is just stub empty menu
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
}
});
它工作正常,我可以选择我的列表项并出现操作模式:screenshot。问题是当我旋转我的设备然后按返回按钮关闭操作模式时,有时(不是每次)操作栏变得丑陋,带有奇怪的浅色背景:截图
它正在我的装有 Android 5.0 的设备上重现。代码很简单,我认为这不是我的代码中的错误。也许,这是Android系统的内部错误?有人遇到过这个问题吗?提前致谢!