#android #android-layout
#Android #android-макет
Вопрос:
У меня есть LinearLayout, который имеет дочерние представления. Дочерние представления располагаются друг над другом, потому что ориентация родительского макета вертикальная. Все дочерние элементы имеют свою высоту и ширину wrap_content, поэтому они свободно перемещаются в любом месте родительского макета. Пользователь может перемещать представления и удалять их по своему усмотрению. Когда пользователь удаляет представление, высота родительского макета изменяется. Пока мой код работает хорошо.
Но когда пользователь перемещает одно представление в сторону другого представления, я бы хотел, чтобы родительский макет изменял его высоту так же, как если бы пользователь удалил представление. Я попытался получить высоту родительского элемента и вычесть расстояние, на которое переместился дочерний элемент, и перерисовать макет, но это не сработало. Я также пробовал другие способы, но пока не добился успеха. Кто-нибудь может мне помочь?
Ответ №1:
Вы можете использовать GridView для вашего случая, где вы можете установить количество столбцов ( android:numColumns
) равным 1, при выравнивании по вертикали и при перемещении в сторону сделайте его равным 2.
Вот документация о том, как использовать GridView https://developer.android.com/guide/topics/ui/layout/gridview.html
<GridView android:id="@ id/grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="top"
android:layout_margin="10dp"
android:horizontalSpacing="10dp"
android:numColumns="2"
android:verticalSpacing="10dp" />