导航时关闭上下文操作栏。抽屉是切换的

时间:2014-05-05 14:56:27

标签: java android navigation android-actionbar

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 - 当用户选择文本时显示的那个 - 每当切换导航抽屉时?

1 个答案:

答案 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}}