【发布时间】:2014-08-14 20:48:28
【问题描述】:
我有一个带有三个片段的可滑动标签的活动。第一个片段是 ListView。长按列表项时需要显示动作模式。以下代码工作正常。但是当我单击操作项时,永远不会调用 onActionItemClicked,而是单击 actionView(选项卡)后面的视图。
这是动作模式的截图,可以看到菜单项与背景视图(选项卡)混合在一起,文字“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");
}
};
和item 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的横向模式。我不知道该怎么做。任何人请帮助我...
【问题讨论】:
标签: listview android-fragments onclicklistener android-actionmode