Android 在导航抽屉打开时隐藏上下文操作栏
这个问题与类似,只是我不想使用视图寻呼机(VP),而是想使用导航抽屉(ND)。我有一个元素列表,当通过长按操作选择一个/多个项目时,它会激活上下文操作栏(CAB)。当ND打开时,我想暂时隐藏驾驶室并显示基本操作栏,而当ND关闭时,再次显示带有所选项目的驾驶室 该功能在ND官方“抽屉可见时隐藏上下文操作栏”中指定。到目前为止,我找不到任何地方如何以一种好的方式制作,但我尝试了一种解决方法:Android 在导航抽屉打开时隐藏上下文操作栏,android,navigation-drawer,contextual-action-bar,Android,Navigation Drawer,Contextual Action Bar,这个问题与类似,只是我不想使用视图寻呼机(VP),而是想使用导航抽屉(ND)。我有一个元素列表,当通过长按操作选择一个/多个项目时,它会激活上下文操作栏(CAB)。当ND打开时,我想暂时隐藏驾驶室并显示基本操作栏,而当ND关闭时,再次显示带有所选项目的驾驶室 该功能在ND官方“抽屉可见时隐藏上下文操作栏”中指定。到目前为止,我找不到任何地方如何以一种好的方式制作,但我尝试了一种解决方法: ND打开时完成CAB并保存所选项目(如果有) 抽屉关闭时,启动启用CAB的操作模式,并从保存的列表中填充所
- ND打开时完成CAB并保存所选项目(如果有)
- 抽屉关闭时,启动启用CAB的操作模式,并从保存的列表中填充所选项目的列表
提前感谢您的回答 为了达到这个要求,我从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;
}
public void onDrawerOpened(){
if(mActionMode!=null){
mCheckedListItems=mListView.getCheckedItemPositions().clone();
mActionMode.finish();
}
}
公共无效或已关闭(){
if(mCheckedListItems!=null){
对于(inti=0;i库)(披露:我是开发人员)在扩展和时自动执行此操作。除后者外,还可以在中扩展和提供您的AblistView
。当导航抽屉打开时,操作模式将隐藏。当关闭时,操作模式将恢复。如果您使用的是材质设计样式的导航dra嗯,被接受的解决方案看起来并不那么好,因为ActionMode
一直放在抽屉的顶部,直到它完全打开
另一种方法是使用onDrawerStateChanged
,然后一旦开始拖动抽屉,它将隐藏操作模式
:
@Override
public void onDrawerStateChanged(int newState) {
super.onDrawerStateChanged(newState);
mActionMode.finish();
}
我的方法与此类似,但您也保留了一份已检查项目的列表。我认为没有此解决方法可能会有更自然的方法。无论如何,谢谢。不过我会等待其他意见,然后再接受您的答复。