带有ShareActionProvider-v7的ActionBar上ShareAction图标问题的大小

ʍѳђ*_*ઽ૯ท 10 android android-actionbar shareactionprovider android-studio

我是工作在我老ShareAction在我ActionBar和它的工作,因为我上更新了我的包SDK Manager.我看到谷歌的这篇文档说,

要为您的活动添加"分享"操作,请ShareActionProvider在应用栏的菜单资源中添加.例如:

而且我添加了相同的内容而不添加任何内容Icons:

<item android:id="@+id/action_share"
   android:title="@string/share"
   app:showAsAction="ifRoom"
   app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
Run Code Online (Sandbox Code Playgroud)

我用的是:

app:actionProviderClass="Mypackagename.ShareActionProvider"
Run Code Online (Sandbox Code Playgroud)

使用ShareActionProvider以下代码的自定义.您可以在此处查看.

我看到了一个黑客或技巧(使用ShareActionProvider-v4),自从我决定使用以来一切都很好android.support.v7.widget.ShareActionProvider.

那么,这是我目前的代码:

<item
   android:id="@+id/shareac"
   android:title="@string/share"
   app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
   app:showAsAction="always" />
Run Code Online (Sandbox Code Playgroud)

我没有使用,Icon因为这里的文档说,

您不需要指定图标,因为ShareActionProvider 窗口小部件会处理自己的外观和行为.但是,如果操作在溢出菜单中结束,则需要使用android:title指定标题.

以下是我到目前为止所做的事情:

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main_details, menu);
        // Locate MenuItem with ShareActionProvider
        MenuItem item = menu.findItem(R.id.shareac);
        // Fetch and store ShareActionProvider
        mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        Bundle extra = getIntent().getExtras();
        String title = extra.getString("title");
        Bundle extraurl = getIntent().getExtras();
        String url = extraurl.getString("url");
        shareIntent.putExtra(Intent.EXTRA_TEXT, "Check this new project from something : " + title + url);
        shareIntent.setType("text/plain");
        mShareActionProvider.setShareIntent(shareIntent);
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

那么,这就是我现在在Android Studio 1.5.1中看到的,是,

在此输入图像描述

如果运行并编译应用程序:

在此输入图像描述

如你所见,尺寸ShareAction太大了.(MaterialDesign我猜这违反了指南).


我忘了说,我已经尝试过android:icon="@mipmap/ic_share"使用我以前的方法/技巧.但是,请查看此预览AndroidStudio:

在此输入图像描述

以下是编译后:

在此输入图像描述

没有改变!

所以,我的问题是:这是一个错误,或者我在这里做错了什么?

Intent.createChooser也不起作用:来自:https://stackoverflow.com/a/34797718/4409113

编辑:

最有趣的部分,我只是看到了相同的设计,并从同一resutls 谷歌在以下课程,并在该应用程序,他们已经把它称为深发的应用程序:

应用链接

课程:

https://www.udacity.com//course/viewer#!/c-ud855/l-3961788738/m-4294896397

ʍѳђ*_*ઽ૯ท 4

好的,正如 ianhanniballake 在这篇文章中所说,

Material Design 中的图标是24dpx24dp,正如 所正确反映的那样 SearchView。然而,ShareActionProvider默认情况下尚未更新为材料设计。

顺便说一句,我刚刚发布了一个问题/报告,code.google.com您可以在这里看到:

http://code.google.com/p/android/issues/detail?id=200335

看起来默认图标是24dpx24dp,但它应该是这样的:

在此输入图像描述

但现在,却是这样的:

在此输入图像描述

似乎是一个错误,仍在等待接受或回答。如果他们回答,我会更新这篇文章。7 天过去了!

更新:

最后,他们已将缺陷分配给开发团队,并且他们将在可用时使用更多信息更新此问题。

非常感谢ssingamc...@google.comGoogle 的支持

答案可以在这里找到:http://code.google.com/p/android/issues/detail ?id=200335#c10

如果有任何更新或修复可用,我将更新此答案。

更新: http://code.google.com/p/android/issues/detail? id=200335#c12

您好,开发团队已经修复了您报告的问题,并将在未来的版本中提供。谢谢

  • 此问题在 com.android.support:appcompat-v7:25.0.0 中仍然存在。似乎 Android 恢复了修复并恢复为大图标。 (3认同)