导航抽屉打开时隐藏环境操作栏

Cos*_*min 11 android contextual-action-bar navigation-drawer

问题类似于此,除了使用导航抽屉(ND)而不是使用View Pager(VP)这一事实.我有一个元素列表,当通过长按操作选择一个/多个项目时,它激活上下文操作栏(CAB).当ND打开时,我想暂时隐藏CAB并显示基本操作栏,而当它关闭时再次显示带有所选项目的CAB.

该功能在ND官方文档 "在抽屉可见时隐藏上下文操作栏"中指定.到目前为止,我无法在任何地方找到如何以一种很好的方式制作它,但我尝试了一种解决方法:

  • ND打开时完成CAB并保存所选项目(如果有).
  • 当抽屉关闭时,启动启用CAB的操作模式,并从保存的列表中填充所选项目的列表.

Gmail应用程序可以体验我想要实现的一个示例.

提前谢谢您的回答!

mto*_*nig 4

为了实现这一要求,我从 ActionBarDrawerToggle 回调方法中调用这两个方法:

public void onDrawerOpened() {
  if (mActionMode != null) {
    mCheckedListItems = mListView.getCheckedItemPositions().clone();
    mActionMode.finish();
  }
}
public void onDrawerClosed() {
  if (mCheckedListItems!=null) {
    for (int i=0; i<mCheckedListItems.size(); i++) {
      if (mCheckedListItems.valueAt(i)) {
        mListView.setItemChecked(mCheckedListItems.keyAt(i), true);
      }
    }
  }
  mCheckedListItems = null;
}
Run Code Online (Sandbox Code Playgroud)