android 工具栏 遮挡,关于android:如何使Contextual ActionMode栏覆盖appcompat-v7工具栏,而不覆盖导航抽屉?...

我有一个带有应用程序栏和导航抽屉的活动。应用栏是使用来自appcompat-v7库版本21+的新工具栏类实现的,导航抽屉显示在其前面。

该活动包含一个列表视图,其中包含可以选择的项目,因此我展示了一个上下文操作栏(CAB)。通过调用以下命令开始:

ActionBarActivity.startSupportActionMode(android.support.v7.view.ActionMode.Callback callback)

默认情况下,CAB插入在工具栏上方,而不是覆盖它。默认情况下,CAB似乎只会覆盖真正的ActionBar。如此答案所示,设置此主题属性后,CAB会正确覆盖工具栏:

true

但是,这也会使CAB覆盖导航抽屉,根据材料设计规范,这是不正确的。 Android的主要设计文档仍然建议在打开导航抽屉时隐藏CAB,并在关闭时再次显示CAB,这可以"解决"问题,但这不是必需的。按照书面规定,材料设计规范未指定在导航抽屉打开时应隐藏CAB,并且由于导航抽屉应在CAB上方打开,因此隐藏CAB实际上是一种视觉干扰。

有什么方法可以将导航抽屉显示在CAB的前面,同时仍将其覆盖在工具栏上?

我可能已经找到了解决方案-或一个简单的解决方法。

当使用startActionMode()而不是内置的setChoiceMode()时,即使使用ListFragment,我也会遇到相同的问题。

因此,我查看了ListFragment代码,发现在活动上未调用startActionMode(),而是在其ListView上调用了startActionMode(),因此我尝试使用视图。

现在在我的代码中,使用片段ListView显然可以按预期工作:

ActionMode mActionMode = getListView().startActionMode(this);

或使用包含我的片段的Activity容器:

View aView = getActivity().findViewById(R.id.container);

ActionMode mActionMode = aView.startActionMode(this);

也:

现在,后退按钮会破坏动作模式,而之前没有

CAB现在可以正确覆盖操作栏,而在我的风格中使用windowActionModeOverlay只能覆盖其中的一部分-至少就我而言

CAB图标是后退箭头而不是对勾-不确定这是什么意思

老实说,我不确定造成这种情况的原因,因此不确定该解决方案的安全性,但是暂时看来效果不错。

如果有人有更好的理解,请随时发表评论或编辑。

我正在使用RecyclerView而不是ListView。 至少在这种情况下,这没有用。 CAB仍在我的抽屉里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
v7-26.0.1-alpha1AppCompat_Body1 style TextAppearance_AppCompat_Body2 style TextAppearance_AppCompat_Button style TextAppearance_AppCompat_Caption style TextAppearance_AppCompat_Display1 style TextAppearance_AppCompat_Display2 style TextAppearance_AppCompat_Display3 style TextAppearance_AppCompat_Display4 style TextAppearance_AppCompat_Headline style TextAppearance_AppCompat_Inverse style TextAppearance_AppCompat_Large style TextAppearance_AppCompat_Large_Inverse style TextAppearance_AppCompat_Light_SearchResult_Subtitle style TextAppearance_AppCompat_Light_SearchResult_Title style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small style TextAppearance_AppCompat_Medium style TextAppearance_AppCompat_Medium_Inverse style TextAppearance_AppCompat_Menu style TextAppearance_AppCompat_Notification style TextAppearance_AppCompat_Notification_Info style TextAppearance_AppCompat_Notification_Line2 style TextAppearance_AppCompat_Notification_Media style TextAppearance_AppCompat_Notification_Time style TextAppearance_AppCompat_Notification_Title style TextAppearance_AppCompat_SearchResult_Subtitle style TextAppearance_AppCompat_SearchResult_Title style TextAppearance_AppCompat_Small style TextAppearance_AppCompat_Small_Inverse style TextAppearance_AppCompat_Subhead style TextAppearance_AppCompat_Subhead_Inverse style TextAppearance_AppCompat_Title style TextAppearance_AppCompat_Title_Inverse style TextAppearance_AppCompat_Widget_ActionBar_Menu style TextAppearance_AppCompat_Widget_ActionBar_Subtitle style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse style TextAppearance_AppCompat_Widget_ActionBar_Title style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse style TextAppearance_AppCompat_Widget_ActionMode_Subtitle style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse style TextAppearance_AppCompat_Widget_ActionMode_Title style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值