我有与此处描述的相同的问题 –
Setting a custom share icon on Actionbar ShareActionProvider
但是我没有使用ActionBarSherlockI发现Sherlock主题使用了“actionModeShareDrawable”,我也可以像这样使用它,如果我不使用ActionBarSherlock
<style name="Theme.MyApp" parent="android:Theme.Holo"> <item name="*android:actionModeShareDrawable">@drawable/icon</item> </style>
这在我的nexus 5上工作正常,但在许多其他设备上都失败了
所以我的问题是,如何在不使用ActionBarSherlock的情况下更改该图标
解决方法
您可以继承ShareActionProvider,仅覆盖构造函数和createActionView().
从这里,您可以从super获取View,将其转换为ActivityChooserView,以便您可以调用
setExpandActivityOverflowButtonDrawable(Drawable)更改图标.
package com.yourpackagename.whatever; import android.content.Context; import android.graphics.drawable.Drawable; import android.support.v7.internal.widget.ActivityChooserView; import android.support.v7.widget.ShareActionProvider; import android.view.View; import com.yourpackagename.R; public class CustomShareActionProvider extends ShareActionProvider { private final Context mContext; public CustomShareActionProvider(Context context) { super(context); mContext = context; } @Override public View onCreateActionView() { ActivityChooserView chooserView = (ActivityChooserView) super.onCreateActionView(); // Set your drawable here Drawable icon = mContext.getResources().getDrawable(R.drawable.ic_action_share); chooserView.setExpandActivityOverflowButtonDrawable(icon); return chooserView; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。