你如何实现底部有按钮的snackbar?
Posted
技术标签:
【中文标题】你如何实现底部有按钮的snackbar?【英文标题】:How do you implement the snackbar that has the button at the bottom? 【发布时间】:2017-12-04 04:35:57 【问题描述】:在材料设计规范中,底部有一个按钮。你如何实现它?
这是规范中的图片。我说的是最后一个。
【问题讨论】:
你不能使用默认的 Snackbar。但是,您可以使用自定义布局创建自己的:***.com/a/41154330/321354 【参考方案1】:android会自动调整描述文字的大小,但不能调整ActionButton的文字大小,所以如果按钮的文字增加,Android会自己做那种布局。
这是一个简单的例子 ->
Snackbar snackbar = Snackbar
.make(mainLayout, "Confirm delete?", Snackbar.LENGTH_LONG)
.setAction("YES", new View.OnClickListener()
@Override
public void onClick(View view)
Snackbar mSnackbar = Snackbar.make(mainLayout, "Message successfully deleted.", Snackbar.LENGTH_SHORT);
mSnackbar.show();
);
snackbar.show();
【讨论】:
如果我添加一个非常长的消息和一个与您的一样长的按钮,我会在我添加的图像上得到第三个示例,而不是第四个。 有用的答案!!【参考方案2】:此链接上的答案帮助我解决了问题。
https://***.com/a/54177574/869451
如果链接丢失,我将在此处复制解决方案:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- Add this line -->
<item name="maxActionInlineWidth">@dimen/design_snackbar_action_inline_max_width</item>
</style>
【讨论】:
【参考方案3】:我已经编写了一个库来做到这一点。它还包括队列系统。试试看https://github.com/tingyik90/snackprogressbar。
如果按钮宽度超过屏幕总宽度的 25%,则将操作置于下一行。如果需要,您可以自己修改我的代码。在SnackProgressBarLayout.java
下。
【讨论】:
以上是关于你如何实现底部有按钮的snackbar?的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter 中打开应用程序时如何显示 Snackbar 或底部工作表?