6

ここで説明したのと同じ問題があります - Actionbar ShareActionProvider にカスタム共有アイコンを設定する

しかし、
私は ActionBarSherlock を使用していません。Sherlock テーマが「actionModeShareDrawable」を使用していることがわかりました。使用しない場合は、このように使用することもできます。ActionBarSherlock

<style name="Theme.MyApp" parent="android:Theme.Holo">
    <item name="*android:actionModeShareDrawable">@drawable/icon</item>
</style>

これは私の nexus 5 では正常に動作しますが、他の多くのデバイスでは失敗しました。
私の質問は、ActionBarSherlock を使用せずにそのアイコンを変更する方法です

4

4 に答える 4

2

PrplRugby の回答は気に入っていますが、アプリに ActivityChooserView を含める必要があります。ここにあるリフレクションを使用するようにリファクタリングしました: https://gist.github.com/briangriffey/11185716

于 2014-04-22T16:32:25.840 に答える
0

このようにメニューで使用できます

menu.xml

<item android:id="@+id/menu_share"
        android:title="@string/share"
         app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
         app:showAsAction="always"
         android:orderInCategory="100"/>

api>21 android:actionModeShareDrawable の場合は設定アイコンに、それ以外の場合は actionModeShareDrawable

スタイル.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ....
    <item name="actionModeShareDrawable">@drawable/share</item>
</style>

最後にこのテーマを適用します

マニフェスト.xml

 <application
     ...
     android:theme="@style/AppTheme" >
于 2016-01-23T09:50:59.950 に答える
-1

これがテーマに含まれていないことはわかっていますが、共有アイコンを menu.xml に設定しました。これは、カスタム アイコンを作成しようとしている場合に役立ちます。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/share" android:showAsAction="always" android:title="@string/share" android:icon="@drawable/ic_menu_share"/>
</menu>

私はそれがまったく機能することに驚いています。actionModeShareDrawalbe を actionModeShareDrawable に変更してみてください。

<style name="Theme.MyApp" parent="android:Theme.Holo">
    <item name="android:actionModeShareDrawable">@drawable/icon</item>
</style>
于 2014-02-11T16:47:35.083 に答える