【发布时间】:2017-12-04 04:35:57
【问题描述】:
【问题讨论】:
-
你不能使用默认的 Snackbar。但是,您可以使用自定义布局创建自己的:stackoverflow.com/a/41154330/321354
标签: android android-support-library androiddesignsupport android-snackbar snackbar
【问题讨论】:
标签: android android-support-library androiddesignsupport android-snackbar snackbar
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();
【讨论】:
此链接上的答案帮助我解决了问题。
https://stackoverflow.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>
【讨论】:
我已经编写了一个库来做到这一点。它还包括队列系统。试试看https://github.com/tingyik90/snackprogressbar。
如果按钮宽度超过屏幕总宽度的 25%,则将操作置于下一行。如果需要,您可以自己修改我的代码。在SnackProgressBarLayout.java下。
【讨论】: