我有一个带有新支持工具栏和导航抽屉的活动。工具栏与内容相关,例如物品清单。可以选择多个项目 - 然后显示ActionMode(上下文操作栏)。但是,系统ActionMode的位置,大小和布局顺序与工具栏不对应,这是合适的。
问题是:如何调整系统ActionMode以对应(与我的工具栏对齐)?或者还有其他推荐替代方案吗?请参阅下面的案例
肖像
NavDrawer可能隐藏在侧面(1绿色) - 这对于工具栏和ActionMode都是可以的。 工具栏及其内容都与抽屉打开的导航抽屉重叠(2黄色)。但是,当ActionMode处于活动状态时,它始终显示在NavDrawer(3-red)上,但我希望它看起来像(2-yellow),因为ActionMode与隐藏内容相关。
平板/横向
在横向中,NavDrawer适合工具栏和内容(左侧)。 ActionMode始终覆盖NavDrawer和工具栏,并具有全屏宽度(右红色)。我希望ActionMode与Toolbar处于相同的位置(左黄色)。
答案 0 :(得分:1)
我使用另一个Toolbar
(actionModeToolbar
)解决了这个问题,我可以将其放在布局的任何位置,并在适当的时候显示或隐藏它。
我在这里找到了一些有用的提示:Toolbar
:
https://gist.github.com/gabrielemariotti/ae63392e1c70bc33af8b
以下是我使用遗留ActionMode
的{{1}}创建Toolbar
的方法。我使用类似于系统ActionMode.Callback
的方法来实现部分兼容性。
请注意,不再需要ActionMode
,因为系统ActionMode.Callback
未使用且代码可以重构。
ActionMode