gpt4 book ai didi

android - AppCompat ToolBar popupTheme 未在 ShareAction MenuItem 中使用

转载 作者:IT老高 更新时间:2023-10-28 21:56:10 28 4
gpt4 key购买 nike

上下文

使用 AppCompat v7 21.0.0/21.0.2/21.0.3

问题

ToolBar的popupTheme没有应用到ShareAction

工具栏上的样式:

<style name="MyActionBarStyle" parent="Widget.AppCompat.Toolbar">
<item name="android:background">@color/green</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

溢出菜单项正在正确使用popupTheme

Overflow Item

另一方面,ShareAction 不接收 popupTheme。经过一些测试后,我注意到它收到了工具栏的 app:theme,因此是黑暗的。

<item name="android:colorBackground">@color/white</item>

ShareAction Menu Item

为了在 ShareAction 上获得黑色文本,我尝试设置许多属性并通过设置“android:textColorPrimary”(在 ToolBar 主题上)我得到了我想要的但我在 ToolBar 上的图标也采用了这种颜色,即奇怪……

菜单xml如下:

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cycle="http://schemas.android.com/apk/res-auto">

<item
android:id="@+id/ic_share"
android:icon="@drawable/abc_ic_menu_share_holo_dark"
android:title="@string/media_share"
cycle:showAsAction="ifRoom"
cycle:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
<item
android:icon="@drawable/abc_ic_menu_share_holo_dark"
android:showAsAction="ifRoom"
android:title="br">
<menu>
<item
android:id="@+id/menuSortNewest"
android:title="Sort by newest" />
<item
android:id="@+id/menuSortRating"
android:title="Sort by rating" />
</menu>
</item>

</menu>

我希望 ShareAction 和溢出都有 popupTheme 但事实并非如此

解决方法

我会在找到解决方法后编辑这篇文章

引用:https://code.google.com/p/android/issues/detail?id=87285&thanks=87285&ts=1419254842

最佳答案

所以,这对我有用。这是我的工具栏 xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/action_bar_main"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
app:theme="@style/Toolbar"
app:popupTheme="@style/Toolbar_Popup"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />

请注意,我设置了主题和 popupTheme,并且我还将背景覆盖为 colorPrimary。以下是工具栏主题的主要应用主题描述:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:actionMenuTextColor">@color/white</item>

<!-- Support library compatibility -->
<item name="actionMenuTextColor">@color/white</item>

<item name="actionBarSize">@dimen/actionbar_height</item>

<item name="colorPrimary">@color/dark_blue</item>
<item name="colorPrimaryDark">@color/dark_blue</item>
<item name="android:textColorPrimary">#607d8b</item>

</style>

<style name="Toolbar" parent="Base.ThemeOverlay.AppCompat.ActionBar">
<item name="android:textColorPrimary">#fff</item>
<item name="android:background">@color/dark_blue</item>
</style>

<style name="Toolbar_Popup" parent="Base.ThemeOverlay.AppCompat.ActionBar">
<item name="android:textColorPrimary">#fff</item>
<item name="android:background">@color/dark_blue</item>
</style>

因此,共享操作背景设置为主工具栏主题中的背景值。并且 Toolbar 本身的背景被覆盖了。

关于android - AppCompat ToolBar popupTheme 未在 ShareAction MenuItem 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26504532/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com