Как сделать резиновую разметку так, чтобы не вмещающиеся элементы переносились на следующую строку?

ravend

можно ли сделать резиновую разметку в приложении, так чтобы добавляемые из кода элементы дополнялись слева на право, с переходом на следующую строку?

макет:

button1 button2 button3 button4 button5

button6 button7 button8 button9 button10

button11 button12

1 ответ

ravend

То, что вам надо, называется FlowLayout

Воспользуйтесь одной из библиотек: FlowLayout или android-flowlayout

В случае первой либы в разметку добавьте FlowLayout, а в него нужное кол-во ваших виджетов, кои надо переносить на другую строку, если они не вмещаются

<com.wefika.flowlayout.flowlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="start|top"> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Lorem ipsum"> <!-- тут ещё много вьюх -->
</textview></com.wefika.flowlayout.flowlayout>

Получится примерно так:

Есть контейнер и из гугловских библиотек поддержки FlexboxLayout - во много более функциональный виджет, чем FlowLayout

licensed under cc by-sa 3.0 with attribution.