【问题标题】:How to remove Messenger Icon from Action Bar如何从操作栏中删除 Messenger 图标
【发布时间】:2013-09-19 11:04:03
【问题描述】:

我正在使用 ShareActionProvider 的操作栏,但面临一个小问题,我还获得了 Messenger 图标和 Share 图标,我不想在我的操作栏中显示 Messenger 图标。

那么如何从操作栏中删除 Messenger 图标,请参阅我的代码:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.main, menu);      
         mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.menu_item_share).getActionProvider();
         if (mShareActionProvider != null) {
         mShareActionProvider.setShareIntent(getDefaultShareIntent());
         }
         return super.onCreateOptionsMenu(menu);
    }

    private Intent getDefaultShareIntent(){
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT");
        intent.putExtra(Intent.EXTRA_TEXT, "TEXT");
        return intent;
    }

我只想在我的操作栏中显示共享图标而不是 Messenger 图标...

查看屏幕截图:

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    欢迎您尝试setShareHistoryFileName(null) 看看是否会阻止第二个图标和历史记录。

    否则,您将需要编写自己的操作提供程序来替代ShareActionProvider。或者,您需要尝试 fork ShareActionProvider 来阻止第二个图标。

    【讨论】:

      【解决方案2】:

      以这种方式在布局中创建菜单:

      <item
          android:showAsAction="always"
          android:icon="@drawable/share_icon"/>  
      

      当你点击它时,你可以显示默认的分享来源。

      【讨论】: