Android ShareActionProvider 设置文字颜色

Android ShareActionProvider Set Text Color

是否有适用于 Android ShareActionProvider 的样式,允许文本为白色而不是黑色。我试过:

<item name="android:textColor">@android:color/white</item>
<item name="android:itemTextAppearance">@style/menu_color</item>
<item name="android:textAppearanceListItem">@style/menu_color</item>
<item name="android:textAppearanceListItemSmall">@style/menu_color</item>
<item name="android:textAppearanceLarge">@style/menu_color</item>`
<item name="android:textAppearanceLargePopupMenu">@style/MyShareActionProviderStyle</item>`
<item name="android:textAppearanceSmallPopupMenu">@style/MyShareActionProviderStyle</item>`
<item name="android:actionMenuTextAppearance">@style/share_item_color</item>

我已经在许多不同的配置中尝试了所有这些属性,但似乎无法找到正确的 属性 来更改以使文本成为正确的颜色。

我使用的是 Holo 主题库,我没有使用 AppCompat 或 ActionBarSherlock。提前感谢您的帮助。

这是我最后做的:

首先,我创建了 ShareActionProvider 的子类,并在菜单 xml 文件中将该片段设置为 android:actionProviderClass

然后在 ShareActionProvider 子类的 onCreateActionView 中我这样做了:

View v = super.onCreateActionView();
for(int i=0; i<((ViewGroup)v).getChildCount(); ++i) {
    View nextChild = ((ViewGroup)v).getChildAt(i);
    TextView title = (TextView)nextChild.findViewById(android.R.id.title);
    if(title != null){
        title.setTextColor(Color.WHITE);
    }
}
return v;

这让我的菜单文本变白了,就像我需要的那样。希望这对以后的人有帮助。

如果您使用的是工具栏,则不需要扩展 ShareActionProvider。只需要在toolabr中应用主题app:theme="@style/toolbarTheme"

这里是主题代码

<style name="toolbarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textColorPrimary">@android:color/white</item>
</style>