Android:在操作栏上更改操作共享项的图标

时间:2014-06-15 20:32:45

标签: android android-actionbar

我知道这个问题已在这里被多次询问,但在花了几个小时寻找解决方案后,我找不到。

我的要求很简单,我只想将Action Bar上的分享图标更改为白色。我是白色的drawables并使用内置的Action Bar。

尝试在菜单xml中设置图标,但没有工作。任何帮助,将不胜感激。

<item
    android:id="@+id/action_share"
    android:actionProviderClass="android.widget.ShareActionProvider"
    android:showAsAction="ifRoom"
    android:icon="@drawable/ic_action_share_white"
    android:title="@string/action_share"/>

1 个答案:

答案 0 :(得分:0)

查看ShareActionProvider的{​​{1}}方法:

onCreateActionView()

因此,要更改此图片,您应该为应用主题更改public View onCreateActionView() { // Create the view and set its data model. ... // Lookup and set the expand action icon. TypedValue outTypedValue = new TypedValue(); mContext.getTheme().resolveAttribute(R.attr.actionModeShareDrawable, outTypedValue, true); Drawable drawable = mContext.getResources().getDrawable(outTypedValue.resourceId); ... 的值。不幸的是,这个属性似乎不是在框架中公开的(尽管如果使用AppCompat或ActionBarSherlock它)。

如果您不同时使用这些库,可能的解决方案是创建actionModeShareDrawable的子类并重新实现ShareActionProvider方法(尽管您必须复制其代码,可能还需要它使用的资源)。

相关问题