official page for the Navigation Drawer design pattern州:
有时用户将处于上下文操作栏的状态 (CAB)显示而不是应用程序的操作栏。这通常会发生 当用户选择文本或选择多个项目后 按住手势。虽然CAB是可见的,但您仍然可以 允许用户使用边缘滑动打开导航抽屉。 但是,在导航抽屉打开时,使用标准操作栏替换CAB。当用户解雇抽屉时, 重新显示CAB。
但经过研究,我似乎无法找到一种方法来解雇"我的
中的上下文操作栏@Override
public void onDrawerOpened(View drawerView) {
// ... My Code ...
}
方法
在我的情况下,当用户从EditText
Activity
中选择文本时,可能会显示CAB(包含复制,粘贴等选项),{{1}}本身会显示导航。抽屉。
我已经看过this question+answer但它并没有解决我的问题,因为它与自定义ActionMode有关。我怎样才能解雇" CAB - 当用户选择文本时显示的那个 - 每当切换导航抽屉时?
答案 0 :(得分:2)
有可能。您必须在创建ActionMode
时获取对ActionMode.Callback
的引用,并在Activity
中获取@Override
public void onActionModeStarted(ActionMode mode) {
super.onActionModeStarted(mode);
mActionMode = mode;
}
@Override
public void onActionModeFinished(ActionMode mode) {
super.onActionModeFinished(mode);
mActionMode = null;
}
@Override
public ActionMode onWindowStartingActionMode(ActionMode.Callback callback) {
mActionModeCallback = callback;
return super.onWindowStartingActionMode(callback);
}
:
ActionMode
然后,当您的抽屉打开/关闭时,请完成ActionMode
或从ActionMode.Callback
开始新的@Override
public void onDrawerOpened(View drawerView) {
if (mActionMode != null) {
mActionMode.finish();
}
}
@Override
public void onDrawerClosed(View drawerView) {
if (mActionModeCallback != null) {
startActionMode(mActionModeCallback);
}
}
:
{{1}}