Android 相对布局 alignParentRight 和 alignParentEnd

Android Relative Layout alignParentRight and alignParentEnd

我试图找出相对布局的布局参数之间的区别,特别是 alignParentRight 和 alignParentEnd(还有 alignParentLeft 和 alignParentStart)。阅读参考资料没有多大帮助,我认为 parent 的结尾总是正确的。这有什么区别吗?现在折旧了吗?

I figured the end of a parent was always its right

仅适用于从左到右 (LTR) 的语言。对于从右到左 (RTL) 的语言(例如,希伯来语、阿拉伯语),结束在左,开始在右。如果您使用 endstart 属性,您的布局将在设置为 RTL 区域设置的设备上为 运行 时进行镜像。如果使用leftright,则不会镜像。

alignParentEndalignParentStart 在 RTL(从右到左)布局中使用,这是历史规范的国家/地区。在这种情况下 "end" 实际上变为 "left" 而不是 "right"。如果您为所有视图提供这些属性,您的布局将在 RTL 布局中看起来像水平翻转,这对于这些国家/地区的用户来说更方便。

让我在@CommonsWare 的回答旁边再补充 1 点。请注意 alignStart, alignEndalignParentEnd, alignParentStart 是在 API 级别 17 中添加的,因此您不能在 17 之前使用这些属性。

https://developer.android.com/reference/android/R.attr.html#layout_alignParentEnd

╔═══════════════════════════════════╦═══════════════════════╗
║ API Level 1                       ║ API Level 17          ║
╠═══════════════════════════════════╬═══════════════════════╣
║ alignBaseLine                     ║ align(Start/End)      ║
║ alignWithParentIfMissing          ║ alignParent(Start/End)║
║ align(Top/Bottom/Left/Right)      ║                       ║
║ alignParent(Top/Bottom/Left/Right)║                       ║
╚═══════════════════════════════════╩═══════════════════════╝