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://github.com/tingyik90/snackprogressbar。
如果按钮宽度超过屏幕总宽度的25%,它会将操作放到下一行。如果需要,您可以自己修改我的代码。它在SnackProgressBarLayout.java
下。
这个链接上的答案帮助我解决了问题。
https://dev59.com/MbHma4cB1Zd3GeqPFg0N#54177574
我将在此处复制解决方案,以防链接失效: <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>