Android将所有视图转移到另一侧

时间:2019-09-09 13:12:45

标签: android android-layout android-view

我有一个带有登录页面的应用程序。

login layout

如您所见,textViews和editTexts移至左侧,但是当我在以希伯来语作为其语言的设备中运行此命令时,所有这些视图均移至右侧。这可能是因为希伯来语是从右到左书写的。我的问题是如何阻止这种情况发生?

6 个答案:

答案 0 :(得分:3)

它与RTL(从右到左)本机支持有关。

在您的清单中,您可以为应用进行全局配置:

android:supportsRtl="false"

official doc中:

  

声明您的应用程序是否愿意支持从右到左(RTL)布局。   如果设置为true并且t argetSdkVersion设置为17或更高,系统将激活并使用各种RTL API,以便您的应用程序可以显示RTL布局。 如果设置为falsetargetSdkVersion设置为16或更低,则RTL API将被忽略或不起作用,并且与以下内容相关的布局方向与您的应用程序相同用户的区域设置选择(您的布局始终从左到右)。

     

此属性的默认值为false

您还可以为每个视图(以及布局)配置 android:layoutDirection 属性

来自doc

  

定义布局图的方向。通常,这与所使用的语言脚本的编写方向相关联。从父视图来看,可能的值是ltr(从左到右),rtl(从右到左),localeinherit。如果没有要继承的内容,则使用“区域设置”。 “语言环境”回落到“ en-US”。 ltr是“ en-US”中使用的方向。 此属性的默认值为inherit

android:textDirection属性,该属性定义文本的方向。

答案 1 :(得分:2)

您必须将android:supportsRtl =“ false”设置为应用清单文件中的元素。

you can see more details of RTL tag

答案 2 :(得分:1)

将以下行添加到布局的根视图中:

    android:layoutDirection="ltr"

这将强制布局方向从左到右,而不是基于区域设置。

答案 3 :(得分:1)

您可以将android:layoutDirection="ltr"添加到布局中。

答案 4 :(得分:0)

很难不用您的代码就知道,但是我认为您要做的就是将android:layoutDirection="ltr"添加到布局中。

这将告诉您布局是ltr,并且不会根据设备语言而更改

答案 5 :(得分:0)

在清单文件中,尝试添加此行代码

android:supportsRtl="false"