在Android应用程序中共享数据时,我看到多个应用程序使用底部工作表(例如Google I / O 2015)来指示应用程序执行操作,而不是标准对话框,其中包含用于处理您意图的应用程序。 / p>
例如:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TITLE, "Some title..");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Some text");
startActivity(Intent.createChooser(shareIntent, "Share via.."));
由于OS版本选择了选择器的显示,因此不起作用。
根据材料设计更改此代码以获取“分享底部”表单的任何方法https://www.google.com/design/spec/components/bottom-sheets.html#bottom-sheets-content
有没有人知道第三方库在较旧的API版本上才能做到这一点?
我找到了https://github.com/soarcn/BottomSheet
但这只允许我从底部工作表创建一个菜单。我想在现实中,我可以查找所有可以执行我正在尝试的操作的应用程序,并在此库上手动添加菜单项,但我希望有一些更简单的东西,因为它不是突破性的功能。
答案 0 :(得分:13)
这是运行Android 6.0的Nexus 5上相同的底页。
在旧版或修改版的Android上可能会有所不同。 (即三星设备等)
<强>代码强>
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Check out this dope website! - https://mikemiller.design/"); // Simple text and URL to share
sendIntent.setType("text/plain");
this.startActivity(sendIntent);
<强>结果强>
答案 1 :(得分:3)
我们的BottomSheet实现有一个你可以使用的commons组件,它允许你为表单指定一个intent / filter / etc,它的行为与Lollipop上的系统版本相似
答案 2 :(得分:3)
我使用了以上两个答案的组合:在M +中使用内置底部工作表,在M以下使用https://github.com/flipboard/bottomsheet API级别。 我更喜欢Android提供的内置底板,因为它部分滑动,然后用户可以一直滑动它。第三方Bottom Sheet库提供向后兼容性,无需自己滚动,因此您可以快速删除它。但是,我更喜欢内置的。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Content");
sendIntent.setType("text/plain");
this.startActivity(sendIntent);
}else {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/*");
intent.putExtra(Intent.EXTRA_TEXT, "Content");
BottomSheet share = BottomSheet.createShareBottomSheet(MainActivity.this, intent, "Title");
share.show();
}
答案 3 :(得分:-1)
如果有人正在寻找Kotlin实现
@ComponentScan