У меня есть горизонтальная LinearLayout, программно заполненная ее дочерними элементами.Я хотел бы иметь возможность переключаться на макет справа налево (то есть дочерний 0 находится справа, дочерний 1 слева и т. Д.).Дело в том, что я хочу, чтобы макет переключался с RtL на LtR и обратно динамически, поэтому, например, этот вопрос не имеет отношения к моему случаю.
Кажется, что нет никакого способаустановить его непосредственно в коде, тем более что гравитация предназначена для выравнивания, а не упорядочения.
Пока я вижу следующие обходные пути:
- На переключателе упорядочения-добавить дочерние элементы в обратном порядке (проблема: очень уродливая и ресурсоемкая).
- Реализация подкласса LinearLayout с переопределенным onLayout () метод (проблема: много копий-копий исходного кода Android из-за ограниченного доступа элементов макета помощника).
- Замените LinearLayout другимнапример, TableLayout или RelativeLayout , и измените параметры макета дочерних элементов на переключателе (проблема: все еще в некотором роде).
Любые более прямые решения или лучший обходной путьs?
РЕДАКТИРОВАТЬ: , чтобы уточнить, я создаю детей практически один раз во время выполнения действия, и я могу сохранить их в массиве / коллекции помощников без каких-либо осложнений длякод.