首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从右到左SnackBar

从右到左SnackBar
EN

Stack Overflow用户
提问于 2016-02-07 09:27:31
回答 6查看 5.5K关注 0票数 28

我想在设计支持库( display )上显示一个带有操作文本

我的语言是从右到左写的。那么,如何更改SnackBar文本和操作方向呢?

就像这样:

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-12-10 16:07:42

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

代码语言:javascript
复制
Snackbar snackbar =
    Snackbar.make(view, "My right2left text", Snackbar.LENGTH_LONG)
            .setAction("Action", new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                }
             });

将方向设置为从右到左:

代码语言:javascript
复制
ViewCompat.setLayoutDirection(snackbar.getView(),ViewCompat.LAYOUT_DIRECTION_RTL);

不要忘了这一点,因为它展示了小吃栏:

代码语言:javascript
复制
snackbar.show();

更新

因为有TextAction作为TextView,所以可以为它们使用其他的TextView方法。比如setTypeface()setTextSize()等等。

为文本设置字体:

代码语言:javascript
复制
TextView text = snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
text.setTypeface(yourTypeface);

为行动设置字体:

代码语言:javascript
复制
TextView action = snackbar.getView().findViewById(android.support.design.R.id.snackbar_action);
action.setTypeface(yourTypeface);
票数 34
EN

Stack Overflow用户

发布于 2017-01-09 18:09:28

只需添加以下代码:

在应用程序标记下的Android清单中,请保留以下内容

Android:supportsRtl=“真”

这是:

代码语言:javascript
复制
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();
票数 5
EN

Stack Overflow用户

发布于 2016-02-07 09:54:22

您必须基于本地设置此选项。Android支持这一功能。

从Android级别的17+,它支持本地的RTL。若要强制整个布局为RTL,包括ActionBar,请执行以下操作。

在应用程序标记下的Android清单中,请保留以下内容

代码语言:javascript
复制
android:supportsRtl="true"

在Utils类中定义这样的方法

代码语言:javascript
复制
@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://github.com/semsamot/ActionBarRTLizer.git

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35251791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档