相关疑难解决方法(0)

AppCompat ToolBar popupTheme未在ShareAction MenuItem中使用

上下文

使用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>
Run Code Online (Sandbox Code Playgroud)

溢出菜单项正在使用popupTheme

溢出项目

另一方面,ShareAction没有收到popupTheme.经过一些测试后,我注意到它收到了应用程序:ToolBar的主题因此是黑暗的.

<item name="android:colorBackground">@color/white</item>
Run Code Online (Sandbox Code Playgroud)

ShareAction菜单项

为了获得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>
Run Code Online (Sandbox Code Playgroud)

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

解决方法

我得到一个解决方法后,我会编辑这篇文章

参考:https://code.google.com/p/android/issues/detail? id = 87285 & thanks = 87285 & t = 1419254842

android themes styles android-appcompat android-toolbar

29
推荐指数
1
解决办法
3万
查看次数