【问题标题】:change icon to android.support.v7.widget.ShareActionProvider将图标更改为 android.support.v7.widget.ShareActionProvider
【发布时间】:2015-06-19 20:18:55
【问题描述】:

我想更改操作栏中分享项的图标。

这是我的菜单文件:

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

我的活动扩展了 ActionBarActivity:

import android.support.v7.widget.ShareActionProvider;   

private ShareActionProvider mShareActionProvider;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.main_menu, menu);

    // Locate MenuItem with ShareActionProvider
    MenuItem item = menu.findItem(R.id.menu_item_share);

    // Fetch and store ShareActionProvider
    mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);

    Intent shareIntent = new Intent(Intent.ACTION_SEND)
            .putExtra(Intent.EXTRA_TEXT, "text")
            .setType("text/plain");
    mShareActionProvider.setShareIntent(shareIntent);
    return true;
}

我尝试更改样式文件:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:actionBarWidgetTheme">@style/Theme.AppCompat.CustomShareIcon</item>
</style>

  <!-- Custom Share Icon -->
<style name="Theme.AppCompat.CustomShareIcon" parent="@style/Theme.AppCompat">
    <item name="android:actionModeShareDrawable">@drawable/share</item>
</style>

但是我得到了 android:actionModeShareDrawable 需要 API 级别 21,所以我将代码移到 v21/styles 但它仍然不起作用。

我还尝试创建自定义共享提供程序Setting a custom share icon on Actionbar ShareActionProvider without ActionBarSherlock,但我得到了 java.lang.ClassCastException。

【问题讨论】:

  • 推荐我的Answer。喜欢就投票吧。
  • 哦!抱歉,您无法使用给定的共享操作提供程序进行更改,因为它有自己的实现,您可以创建自己的操作,例如 Cusom Action Provider,并在点击事件时使用弹出菜单。
  • 我不得不从 menu.xml 更改操作提供程序类并且它工作但现在它看起来很大,其他的比共享图标小。如果我让它像普通物品一样看起来不错..你有什么想法让它看起来很正常吗?
  • 在图像视图中应用填充。
  • 它没有用。所以我把它当作一个普通的菜单项,我添加了stackoverflow.com/questions/17167701/…

标签: android shareactionprovider


【解决方案1】:

它对我有用...在你的 xml 中添加 android:icon:

例子:

<item
android:id="@+id/action_share"
android:title="Share"
android:icon="@drawable/ic_share_menu"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
app:showAsAction="always"
android:orderInCategory="100">
</item>

【讨论】:

  • 指定您的自定义可绘制图标...代替“ic_share_menu”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 1970-01-01
相关资源
最近更新 更多