首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用android.support.v7的共享菜单不显示应用程序图标

使用android.support.v7的共享菜单不显示应用程序图标
EN

Stack Overflow用户
提问于 2014-09-04 14:23:00
回答 1查看 851关注 0票数 4

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

在menu.xls中:

代码语言:javascript
复制
<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活动中:

代码语言:javascript
复制
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;

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-04 15:28:22

菜单项显示在弹出列表中,而不是下拉列表中。嗯,我想告诉你,这不是你的编码的错误。相反,是android.support.v7为低端设备制造这样的显示器,但在高端设备中工作得很好。我很抱歉地告诉你,你什么也做不了。

但是,如果你想在所有安卓设备上对你的应用程序有同样的下拉效果,你必须切换到ActionBarSherlock。它是一个很好的开源库,为所有设备的动作杆设计提供了一致和无偏的结果。

编辑:虽然ActionBarSherlock很棒,但是它的更新已经停止了。另外,从APILevel21开始,ActionBarActivity也不再受欢迎了。因此,android版本的升级速度很好,世界更倾向于为移动应用程序设计材料。我想提出两种选择:

  1. 使用正式的AppCompatActivity
  2. 或者将您的ActionBar替换为高度可定制的ToolBar 教程
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25667972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档