【问题标题】:share menu using android.support.v7 doesn't show the apps icons使用 android.support.v7 的共享菜单不显示应用程序图标
【发布时间】:2014-09-04 14:23:00
【问题描述】:

我正在尝试使用带有 android.support.v7 的 ShareActionProvider 共享一个简单的文本,以便在 ActionBar 中放置一个共享按钮。我的应用程序必须使用最低 API 级别 8。 问题:当我使用 API 19(目标级别)模拟代码时,它可以正常工作,但是当我使用 API-8 设备进行模拟时,带有要共享的应用程序列表的弹出菜单仅显示应用程序的名称,没有它的图标。我尝试使用具有 API-9 的真正 android 设备并遇到同样的问题:也没有图标。 这是我的代码:

在 menu.xls 中:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="package.ActivityName" >


    <item
        android:id="@+id/menuitemShare"
        android:orderInCategory="1"
        android:title="@string/menu1"
        android:icon="@drawable/ic_action_share"
        app:showAsAction="ifRoom"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        />

</menu>

在java活动中:

public class ActivityName extends ActionBarActivity  {


    private ShareActionProvider mShareActionProvider;
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.bem_vindo2, menu);
        MenuItem shareItem = menu.findItem(R.id.menuitemCompartilhar);
        mShareActionProvider = (ShareActionProvider)
                MenuItemCompat.getActionProvider(shareItem);
        mShareActionProvider.setShareIntent(getDefaultIntent());

        return super.onCreateOptionsMenu(menu);
    }

    private Intent getDefaultIntent() {

        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT, "text to share");
        return intent;

    }
}

【问题讨论】:

    标签: android api shareactionprovider


    【解决方案1】:

    您的菜单项显示在弹出列表中,而不是下拉列表中。好吧,我想告诉你,这不是你编码的错。相反,它是 android.support.v7,它为低端设备制作这样的显示,但在高端设备中运行良好。很抱歉,您对此无能为力。

    但是如果您想在所有安卓设备上为您的应用程序提供相同的下拉效果,您必须切换到ActionBarSherlock。它是一个很棒的开源库,在动作栏设计中为所有设备提供一致和公正的结果。

    编辑: 虽然 ActionBarSherlock 很棒,但它的更新已经停止。此外,从 API 级别 21 开始,现在已弃用 ActionBarActivity。对于帐户 android 版本的更新速度很好,并且世界更喜欢移动应用程序的 Material Design。 我想建议两个选择:

    1. 使用官方AppCompatActivity
    2. 或者用 ToolBar tutorial 替换你的 ActionBar,这是高度可定制的。

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 2018-01-12
      • 2015-08-12
      • 2013-12-30
      相关资源
      最近更新 更多