【发布时间】:2015-02-06 21:04:11
【问题描述】:
我不确定这是错误还是我没有正确使用新的 Toolbar 类。
我能够直接使用可用主题之一成功地为 ActionBar 设置主题。这也允许我为 ActionMode 设置主题。一切都按预期完美运行。这就是我的做法。
<style name="Theme.ActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionModeBackground">@drawable/action_mode_background</item>
</style>
现在我正在寻找更多的灵活性,因此我尝试使用支持库中的新工具栏。完善工具栏实现并正常工作,但是,现在操作模式不再按预期工作。自定义背景不起作用,操作模式栏正在向下推工具栏。
为了解决下推问题,我使用了标志 windowActionModeOverlay。
<style name="Theme.ActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeBackground">@drawable/action_mode_background</item>
</style>
在我的活动中,我执行以下操作以使我的工具栏成为默认操作栏。
Toolbar toolbar = (Toolbar) findViewById(R.id.toolBar);
setSupportActionBar(toolbar);
现在我已经尝试了很多东西。我什至尝试深入了解源代码以弄清楚发生了什么。
任何想法为什么会发生这种情况?如何设置 ActionMode 的样式?或者更具体地说,如何更改 ActionMode 的背景?
更新 1
我注意到在我的活动主题中添加<item name="windowActionBar">false</item> 时,动作模式会失去它的主题而不是让它成为真实的。显然将其设置为 true 它将包括窗口操作栏。
更新 2
我能够使用几个模组正确地获得动作模式主题。
-
动作模式背景。原来你只是直接在 ActionMode 主题上将背景设置为 android:background!此外,您需要在主题上指定它的文本。
<item name="actionModeStyle">@style/Widget.ActionMode</item>` <style name="Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> <item name="android:background">@drawable/action_mode_background</item> <item name="titleTextStyle">@style/TitleTextStyle</item> </style> -
后退箭头未设置样式。我覆盖了使用的drawable,只是添加了我自己的白色。
<item name="actionModeCloseDrawable">@drawable/ic_arrow_back_white_24dp</item>`
【问题讨论】:
-
为了确定,我会尝试将
android:前缀添加到actionModeBackground属性。 -
嘿,我用“修复”更新了我的问题。结果发现设置动作模式背景略有不同。
-
现在有什么问题?
-
我想我可以将问题更新为更像:为什么隐藏窗口操作栏时操作模式会丢失活动主题。现在我能够正确设置主题,但我认为这可能是支持库中的错误。
标签: android android-support-library material-design