我有一个带有登录页面的应用程序。
如您所见,textViews和editTexts移至左侧,但是当我在以希伯来语作为其语言的设备中运行此命令时,所有这些视图均移至右侧。这可能是因为希伯来语是从右到左书写的。我的问题是如何阻止这种情况发生?
答案 0 :(得分:3)
它与RTL(从右到左)本机支持有关。
在您的清单中,您可以为应用进行全局配置:
android:supportsRtl="false"
在official doc中:
声明您的应用程序是否愿意支持从右到左(RTL)布局。 如果设置为
true
并且targetSdkVersion
设置为17或更高,系统将激活并使用各种RTL API,以便您的应用程序可以显示RTL布局。 如果设置为false
或targetSdkVersion
设置为16或更低,则RTL API将被忽略或不起作用,并且与以下内容相关的布局方向与您的应用程序相同用户的区域设置选择(您的布局始终从左到右)。此属性的默认值为
false
。
您还可以为每个视图(以及布局)配置 android:layoutDirection
属性
来自doc:
定义布局图的方向。通常,这与所使用的语言脚本的编写方向相关联。从父视图来看,可能的值是
ltr
(从左到右),rtl
(从右到左),locale
和inherit
。如果没有要继承的内容,则使用“区域设置”。 “语言环境”回落到“ en-US”。ltr
是“ en-US”中使用的方向。 此属性的默认值为inherit
。
和android:textDirection
属性,该属性定义文本的方向。
答案 1 :(得分:2)
您必须将android:supportsRtl =“ false”设置为应用清单文件中的元素。
答案 2 :(得分:1)
将以下行添加到布局的根视图中:
android:layoutDirection="ltr"
这将强制布局方向从左到右,而不是基于区域设置。
答案 3 :(得分:1)
您可以将android:layoutDirection="ltr"
添加到布局中。
答案 4 :(得分:0)
很难不用您的代码就知道,但是我认为您要做的就是将android:layoutDirection="ltr"
添加到布局中。
这将告诉您布局是ltr,并且不会根据设备语言而更改
答案 5 :(得分:0)
在清单文件中,尝试添加此行代码
android:supportsRtl="false"