我想在设计支持库( display )上显示一个带有操作的文本。
我的语言是从右到左写的。那么,如何更改SnackBar文本和操作方向呢?
就像这样:

发布于 2017-12-10 16:07:42
最后,从答案和更多的搜索中,我找到了这个解决方案:
Snackbar snackbar =
Snackbar.make(view, "My right2left text", Snackbar.LENGTH_LONG)
.setAction("Action", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});将方向设置为从右到左:
ViewCompat.setLayoutDirection(snackbar.getView(),ViewCompat.LAYOUT_DIRECTION_RTL);不要忘了这一点,因为它展示了小吃栏:
snackbar.show();更新
因为有Text和Action作为TextView,所以可以为它们使用其他的TextView方法。比如setTypeface(),setTextSize()等等。
为文本设置字体:
TextView text = snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
text.setTypeface(yourTypeface);为行动设置字体:
TextView action = snackbar.getView().findViewById(android.support.design.R.id.snackbar_action);
action.setTypeface(yourTypeface);发布于 2017-01-09 18:09:28
只需添加以下代码:
在应用程序标记下的Android清单中,请保留以下内容
Android:supportsRtl=“真”
这是:
Snackbar snackbar = Snackbar.make(getView(), "Text", Snackbar.LENGTH_SHORT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
TextView view1 = (TextView)snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
view1.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
}
snackbar.show();发布于 2016-02-07 09:54:22
您必须基于本地设置此选项。Android支持这一功能。
从Android级别的17+,它支持本地的RTL。若要强制整个布局为RTL,包括ActionBar,请执行以下操作。
在应用程序标记下的Android清单中,请保留以下内容
android:supportsRtl="true"在Utils类中定义这样的方法
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public static void getRtlSupport() {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
}
} 使用此回购作为参考,并将其实现为snackbar。
https://stackoverflow.com/questions/35251791
复制相似问题