ʍѳђ*_*ઽ૯ท 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
好的,正如 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
您好,开发团队已经修复了您报告的问题,并将在未来的版本中提供。谢谢