布局中setGravity = right和setLayoutDirection = rtl之间的区别是什么

时间:2016-07-01 13:27:17

标签: android android-layout

如果我想分配android:gravity="right",我想更改布局的方向,我会给出与分配android:layoutDirection="rtl"时相同的结果。

我想知道其中两个之间的区别。

2 个答案:

答案 0 :(得分:1)

rtl表示"right to left",如果您希望视图组专门针对从右到左的语言(总是)显示阿拉伯语等内容,则可以使用android:layoutDirection="rtl"。这就是为什么它将您的视图与右侧对齐。也就是说,我建议你回避使用layoutDirection,因为它会覆盖设备的任何语言环境。

android:gravity="right"会将视图与右侧对齐。我还建议你不要使用它(或gravity="left"),因为它不会调整rtl种语言,所以如果你发布了阿拉伯语版本的应用程序,你的阿拉伯语布局会很奇怪用户。

相反,您应该使用android:gravity="end",因为这会使您的观点与ltr种语言(英语)保持一致,并保留为rtl种语言(阿拉伯语)。你需要minSDK>17来使用结束和开始对齐,但我假设你是因为你还需要一个17的min sdk来使用layoutDirection

答案 1 :(得分:0)

这是RTL(从右到左)布局。对于那些了解乌尔都语或阿拉伯语的人来说,一切都是从右到左排列的。

Simple RTL Layout
RTL layout for localization

layout_gravity = "right"将您的观点与父母的权利对齐。参考图像。只有TextView对齐,其他所有内容都是从左到右。

enter image description here