P. S如果您没有使用AndroidX(推荐使用),并且仍在使用传统支持库,请使用android.support.design.R.id.snackbar_text而不是com.google.android.material.R.id.snackbar_text来获取Snackbar的内部TextView。
// Create on click listener
final OnClickListener positiveButtonClickListener = new OnClickListener()
{
@Override
public void onClick(View v)
{
// Do your action - e.g. call GooglePlay to update app
openGooglePlayAppUpdate();
}
};
// Create snack bar instance
Snackbar sBar = Snackbar.make(findViewById(R.id.some_view_to_bind), // You bind here e.g. layout, or form view
R.string.snack_bar_message,
Snackbar.LENGTH_INDEFINITE)
// Set text and action to the snack bar
.setAction(android.R.string.ok, positiveButtonClickListener);
// Now get text view of your snack bar ...
TextView snckBarTv = (TextView) offerUpdate.getView().findViewById(android.support.design.R.id.snackbar_text);
snckBarTv.setMaxLines(5); // ... and set max lines
sBar.show(); // and finally display snack bar !
6条答案
按热度按时间gajydyqb1#
重要的是,您需要使用Snackbar的观点,这一点在其他答案中没有说明。
因此:
注:这也可能有助于屏幕密度较低的设备。
P. S如果您没有使用AndroidX(推荐使用),并且仍在使用传统支持库,请使用
android.support.design.R.id.snackbar_text
而不是com.google.android.material.R.id.snackbar_text
来获取Snackbar的内部TextView。piztneat2#
您可以像这样引用SnackBar的TextView:
然后通过更改最大行数对TextView本身进行操作:
9udxz4iz3#
基于Snackbar source code,您可以看到在宽度大于或等于600 dp的设备上,它们将最大行数更改为
1
。到
res\values\*.xml
值中qkf9rpyu4#
下面是一个更详细、更全面的上下文示例:
bcs8qyzn5#
对于使用Kotlin的用户,您可以使用扩展
juzqafwq6#
对我来说,最好的解决方案是在2行内自动调整大小:
您还可以增加最大行数或更改任何其他TextView属性:
并自定义按钮和填充:
您的主题: