Я пытаюсь выяснить разницу между параметрами макета для относительной компоновки, в частности alignParentRight и alignParentEnd (также alignParentLeft и alignParentStart). Чтение ссылки не очень помогает, я решил, что конец родителя всегда был прав. Есть ли разница в этом? Сейчас обесценивается?
Я полагал, что конец родителя всегда был прав
Только для языков слева направо (LTR). Для языков справа налево (RTL) (например, на иврите, арабском) конец остается слева, а начало – правильно. Если вы используете атрибуты end
и start
, ваш макет будет отображаться, когда он будет запущен на устройстве, установленном в локали RTL. Если вы используете left
и right
, это не отразится.
Позвольте мне добавить еще 1 пункт рядом с ответом @ CommonsWare. Имейте в alignStart, alignEnd
что alignStart, alignEnd
и alignParentEnd, 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)║ ║ ╚═══════════════════════════════════╩═══════════════════════╝
alignParentEnd
и alignParentStart
используются в alignParentStart
RTL (справа налево) в странах, где это историческая норма. В этом случае «конец» фактически становится «левым», а не «правильным». Если вы предоставите все свои представления с этими атрибутами, ваш макет будет выглядеть горизонтально перевернутым в макетах RTL, что более удобно для пользователей в этих странах.