Android и переупорядочение дочерних элементов ViewGroup - PullRequest
0 голосов
/ 12 февраля 2012
  1. Как вы обмениваетесь индексами двух детей в ViewGroup?

  2. Как использовать setLeft для дочернего вида? Кажется, он не определен для объектов класса View.

Редактировать.

Ответ на # 2 заключается в том, что setLeft доступен только из API11. То же самое setX.

Ответы [ 3 ]

1 голос
/ 12 февраля 2012

Я думаю, что удаление представлений и повторное надувание макета - единственное решение. Может быть, вы можете попробовать использовать ViewFlipper . Я не знаю, подходит ли это для вашего случая.

1 голос
/ 31 августа 2017

лучшее решение: flexbox-layout от Google

FexboxLayout - это проект библиотеки, который предоставляет аналогичные возможности CSS Flexible Box Layout Module для Android.

Тогда вы можете установить

layout_order

Этот атрибут может изменить порядок расположения дочерних представлений. По умолчанию дочерние элементы отображаются и располагаются в том же порядке, в котором они отображаются в макете XML. Если не указано, 1 устанавливается как значение по умолчанию.

1 голос
/ 12 февраля 2012

Вы можете удалить всех детей, а затем добавить по желанию. Я не нашел другого пути.

ИМХО, лучший способ реорганизовать макет - это использовать RelativeLayout.

Как я это делаю:

// prepare rules
lpTopLeft = new RelativeLayout.LayoutParams(minDimension/5, minDimension/5);
lpTopLeft.setMargins(minDimension/50, minDimension/50, minDimension/50, minDimension/50);
lpTopLeft.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lpTopLeft.addRule(RelativeLayout.ALIGN_PARENT_LEFT);

А теперь используйте подготовленные настройки:

// rearrange child
bnReset.setLayoutParams(lpTopLeft);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...