从右到左SnackBar

Sey*_*yed 15 android right-to-left android-snackbar

我想在Design Support Library SnackBar上显示带有操作文本. 我的语言是从右到左写的.那么我该如何改变SnackBar文本和动作方向呢? 像这样的东西:



在此输入图像描述

Sey*_*yed 14

最后从答案和更多搜索我找到了这个解决方案:

Snackbar snackbar =
    Snackbar.make(view, "My right2left text", Snackbar.LENGTH_LONG)
            .setAction("Action", new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                }
             });
Run Code Online (Sandbox Code Playgroud)

设置从右到左的方向:

ViewCompat.setLayoutDirection(snackbar.getView(),ViewCompat.LAYOUT_DIRECTION_RTL);
Run Code Online (Sandbox Code Playgroud)

不要忘记这显示小吃吧:

snackbar.show();
Run Code Online (Sandbox Code Playgroud)

UPDATE

既然你TextAction作为TextView可以使用其他的TextView方法他们.像setTypeface(),setTextSize()等等.

设置文字的字体:

TextView text = snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
text.setTypeface(yourTypeface);
Run Code Online (Sandbox Code Playgroud)

设置动作字体:

TextView action = snackbar.getView().findViewById(android.support.design.R.id.snackbar_action);
action.setTypeface(yourTypeface);
Run Code Online (Sandbox Code Playgroud)


Ali*_*Edp 5

只需添加此代码:

在应用程序标签下的Android清单中保留这个

android:supportsRtl="true"

和这个 :

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();
Run Code Online (Sandbox Code Playgroud)