如何使ActionMode与自定义工具栏对齐

时间:2015-02-18 15:59:56

标签: android navigation-drawer android-toolbar android-actionmode

我有一个带有新支持工具栏和导航抽屉的活动。工具栏与内容相关,例如物品清单。可以选择多个项目 - 然后显示ActionMode(上下文操作栏)。但是,系统ActionMode的位置,大小和布局顺序与工具栏不对应,这是合适的。

问题是:如何调整系统ActionMode以对应(与我的工具栏对齐)?或者还有其他推荐替代方案吗?请参阅下面的案例

肖像

NavDrawer可能隐藏在侧面(1绿色) - 这对于工具栏和ActionMode都是可以的。 工具栏及其内容都与抽屉打开的导航抽屉重叠(2黄色)。但是,当ActionMode处于活动状态时,它始终显示在NavDrawer(3-red)上,但我希望它看起来像(2-yellow),因为ActionMode与隐藏内容相关。

此问题与此问题类似: How to make the Contextual ActionMode Bar overlay the appcompat-v7 Toolbar but not the navigation drawer?

ActionMode portrait

平板/横向

在横向中,NavDrawer适合工具栏和内容(左侧)。 ActionMode始终覆盖NavDrawer和工具栏,并具有全屏宽度(右红色)。我希望ActionMode与Toolbar处于相同的位置(左黄色)。

ActionMode landscape/tablet

1 个答案:

答案 0 :(得分:1)

我使用另一个ToolbaractionModeToolbar)解决了这个问题,我可以将其放在布局的任何位置,并在适当的时候显示或隐藏它。

我在这里找到了一些有用的提示:Toolbarhttps://gist.github.com/gabrielemariotti/ae63392e1c70bc33af8b

以下是我使用遗留ActionMode的{​​{1}}创建Toolbar的方法。我使用类似于系统ActionMode.Callback的方法来实现部分兼容性。 请注意,不再需要ActionMode,因为系统ActionMode.Callback未使用且代码可以重构。

ActionMode