我知道这个问题已在这里被多次询问,但在花了几个小时寻找解决方案后,我找不到。
我的要求很简单,我只想将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"/>
答案 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
方法(尽管您必须复制其代码,可能还需要它使用的资源)。