我有一个带有三个片段的可滑动标签的活动。第一个片段是 ListView。长按列表项时需要显示动作模式。以下代码工作正常。但是,当我单击操作项时,永远不会调用 onActionItemClicked,而是单击操作视图(选项卡)后面的视图。
这是动作模式的截图,您可以看到菜单项与背景视图(选项卡)混合在一起,文本“FOLDERS”实际上是在 acionview 后面。
这是我在其他设备上得到的
这是我的 ActionMode.Callback
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
// called when the action mode is created; startActionMode() was called
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
// assumes that you have "contexual.xml" menu resources
inflater.inflate(R.menu.actions, menu);
return true;
}
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false; // Return false if nothing is done
}
// called when the user selects a contextual menu item
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
debug("onActionItemClicked");
mode.finish();
return false;
}
// called when the user exits the action mode
public void onDestroyActionMode(ActionMode mode) {
debug("onDestroyActionMode");
}
};
和项目 longClick 侦听器
list.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
mActionMode = getActivity()
.startActionMode(mActionModeCallback);
return true;
}
});
此问题仅在带有 android L 纵向模式的 nexus 5 上出现。它适用于其他设备和nexus 5的横向模式。我不知道该怎么做。任何人请帮助我...