如何在 DarkActionBar 中使用 light Action Mode?
How to use light Action Mode with DarkActionBar?
这是我的主题。我正在使用 DarkActionBar
以便标题、后退按钮和溢出图标为白色而不是黑色。
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
但是,当文本被选中时,ActionMode/Contextual Action Bar 是 'black' 背景上的白色文本。
当我删除 .DarkActionBar
时,上下文操作栏会在浅灰色上切换为黑色,这对这个应用程序来说更令人愉悦。因此,如果我要走那条路,我需要找到一种不同的方法来使主要操作栏使用白色前景。
如何在 ActionMode/Contextual Action Bar 上获得浅色背景/深色前景,同时在我的主 ActionBar 上仍然有浅色前景?
以下是我根据 Daniel 在评论中的建议尝试的方法:
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="actionModeStyle">@style/MyTheme.ActionMode</item>
<item name="actionMenuTextColor">@android:color/black</item>
</style>
<style name="MyTheme.ActionMode" parent="Widget.AppCompat.ActionMode">
<item name="background">@android:color/white</item>
<item name="actionMenuTextColor">@android:color/black</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionMode.TitleText</item>
<item name="android:subtitleTextStyle">@style/MyTheme.ActionMode.TitleText</item>
</style>
<style name="MyTheme.ActionMode.TitleText">
<item name="android:textColor">@android:color/black</item>
</style>
不幸的是,我只能改变背景。所有 ActionMode 文本和图标仍然是白色。
我现在要使用 <item name="background">@color/colorPrimary</item>
。比黑底好看。
似乎仍然有办法将前景更改为黑色,让我可以使用 Android 的典型 light-gray 背景。
我已经找到了答案,但它非常手动:
可以为您的主题风格的每张图片添加您自己的图形:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- Override the ActionMode Style -->
<item name="actionModeStyle">@style/ActionMode</item>
<item name="actionModeCloseDrawable">@drawable/ic_action_navigation_close</item>
<!-- Styles inherited from the Base Theme -->
<item name="android:actionModeCutDrawable">@drawable/ic_action_content_content_cut</item>
<item name="android:actionModeCopyDrawable">@drawable/ic_action_content_content_copy</item>
<item name="android:actionModePasteDrawable">@drawable/ic_action_content_content_paste</item>
<item name="android:actionModeSelectAllDrawable">@drawable/ic_action_content_select_all</item>
</style>
<!-- Action Mode -->
<style name="ActionMode" parent="Widget.AppCompat.ActionMode">
<item name="background">@android:color/white</item>
<item name="titleTextStyle">@style/TitleTextStyle</item>
</style>
<!-- Title text of Contextual action bar-->
<style name="TitleTextStyle">
<item name="android:textColor">@android:color/darker_gray</item>
<item name="android:textSize">18sp</item>
</style>
</resources>
对我们来说幸运的是,Roman Nurik 组合了一个很好的工具来获取我们需要的所有资产:
只需使用剪贴画选项(搜索剪切、复制、过去、select 全部和关闭)
祝你好运,编码愉快!
这是我的主题。我正在使用 DarkActionBar
以便标题、后退按钮和溢出图标为白色而不是黑色。
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
但是,当文本被选中时,ActionMode/Contextual Action Bar 是 'black' 背景上的白色文本。
当我删除 .DarkActionBar
时,上下文操作栏会在浅灰色上切换为黑色,这对这个应用程序来说更令人愉悦。因此,如果我要走那条路,我需要找到一种不同的方法来使主要操作栏使用白色前景。
如何在 ActionMode/Contextual Action Bar 上获得浅色背景/深色前景,同时在我的主 ActionBar 上仍然有浅色前景?
以下是我根据 Daniel 在评论中的建议尝试的方法:
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="actionModeStyle">@style/MyTheme.ActionMode</item>
<item name="actionMenuTextColor">@android:color/black</item>
</style>
<style name="MyTheme.ActionMode" parent="Widget.AppCompat.ActionMode">
<item name="background">@android:color/white</item>
<item name="actionMenuTextColor">@android:color/black</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionMode.TitleText</item>
<item name="android:subtitleTextStyle">@style/MyTheme.ActionMode.TitleText</item>
</style>
<style name="MyTheme.ActionMode.TitleText">
<item name="android:textColor">@android:color/black</item>
</style>
不幸的是,我只能改变背景。所有 ActionMode 文本和图标仍然是白色。
我现在要使用 <item name="background">@color/colorPrimary</item>
。比黑底好看。
似乎仍然有办法将前景更改为黑色,让我可以使用 Android 的典型 light-gray 背景。
我已经找到了答案,但它非常手动:
可以为您的主题风格的每张图片添加您自己的图形:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- Override the ActionMode Style -->
<item name="actionModeStyle">@style/ActionMode</item>
<item name="actionModeCloseDrawable">@drawable/ic_action_navigation_close</item>
<!-- Styles inherited from the Base Theme -->
<item name="android:actionModeCutDrawable">@drawable/ic_action_content_content_cut</item>
<item name="android:actionModeCopyDrawable">@drawable/ic_action_content_content_copy</item>
<item name="android:actionModePasteDrawable">@drawable/ic_action_content_content_paste</item>
<item name="android:actionModeSelectAllDrawable">@drawable/ic_action_content_select_all</item>
</style>
<!-- Action Mode -->
<style name="ActionMode" parent="Widget.AppCompat.ActionMode">
<item name="background">@android:color/white</item>
<item name="titleTextStyle">@style/TitleTextStyle</item>
</style>
<!-- Title text of Contextual action bar-->
<style name="TitleTextStyle">
<item name="android:textColor">@android:color/darker_gray</item>
<item name="android:textSize">18sp</item>
</style>
</resources>
对我们来说幸运的是,Roman Nurik 组合了一个很好的工具来获取我们需要的所有资产:
只需使用剪贴画选项(搜索剪切、复制、过去、select 全部和关闭)
祝你好运,编码愉快!