如何根据子视图的位置调整布局高度

时间:2016-10-20 22:22:35

标签: android android-layout

我有拥有子视图的LinearLayout。子视图堆叠在另一个的顶部,因为父布局的方向是垂直的。所有孩子的高度和宽度都是wrap_content,因此他们可以在父布局中的任何位置自由移动。用户可以移动视图并根据需要删除它们。当用户删除视图时,父布局高度会调整大小。到目前为止我的代码运作良好。

但是当用户将一个视图移动到另一个视图的侧面时,我希望父布局调整其高度,就像用户移除视图一样。我试图获得父亲的高度并减去孩子移动的距离并重新绘制布局,但这并不起作用。我也试过其他方法,但我还没有成功。有人能帮我吗?

1 个答案:

答案 0 :(得分: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" />