当我想将布局方向更改为右侧时,如果我分配 android:gravity="right"
我将给出与分配 android:layoutDirection="rtl 时相同的结果"
.
我想知道这两者的区别
最佳答案
rtl
表示 "right to left"
,你会使用 android:layoutDirection="rtl"
如果您希望 View 组专门针对从右到左的语言(始终)显示内容,例如阿拉伯语。这就是为什么它使您的 View 向右对齐的原因。也就是说,我建议您避免使用 layoutDirection
。因为它会覆盖设备的任何区域设置。
android:gravity="right"
将 View 右对齐。我还建议您不要使用它(或 gravity="left"
),因为它不会针对 rtl
进行调整。语言,所以如果您发布应用程序的阿拉伯语版本,则布局对于您的阿拉伯语用户来说会很奇怪。
相反,您应该使用 android:gravity="end"
因为这将使您的 View 在 ltr
中对齐语言(英语)并留在 rtl
语言(阿拉伯语)。你需要有一个 minSDK>17
使用结束和开始对齐,但我假设你是因为你还需要 17 的最小 sdk 才能使用 layoutDirection
.
关于android - layout中setGravity=right和setLayoutDirection=rtl有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38146700/