【发布时间】:2014-09-03 12:36:58
【问题描述】:
我有一个由 6 个孩子组成的 GridLayout。它的列数为 2。左列的子级具有 layout_gravity 的 start|end|fill_horizontal 和 layout_width 的 0dp,这会导致它们填满所有可用空间。
这太棒了,它给了我如下所示的输出。
视图 4、5 和 6 只是它们需要的大小。很酷。我现在想将视图 4、5 和 6 与容器的右侧对齐,但这已被证明具有挑战性。由于GridLayout 确定列灵活性的方式,给右列的视图提供layout_gravity 或right 会破坏布局。第一列中的视图不再填充布局中的剩余宽度。 (据我了解,这是因为现在两列都有定义水平重力的子级,所以GridLayout 不能再将一列标记为灵活)。
有没有办法做到这一点?我真的不喜欢嵌套LinearLayouts。以下是我想要的结果。
作为参考,当前视图层次结构 XML 看起来像...
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2">
<View
android:id="@+id/view1"
android:layout_gravity="start|end|fill_horizontal" />
<View
android:id="@+id/view4" />
<View
android:id="@+id/view2"
android:layout_gravity="start|end|fill_horizontal" />
<View
android:id="@+id/view5" />
<View
android:id="@+id/view3"
android:layout_gravity="start|end|fill_horizontal" />
<View
android:id="@+id/view6" />
</GridLayout>
【问题讨论】:
-
只是为了澄清:您是想只为右列填充空间,还是右列应该与左列具有相同的宽度?是否还要右对齐第二列中的文本?
-
我希望右栏中的视图保持当前宽度。我希望视图的边界拥抱右侧,而不是左侧。文本确实会右对齐,但
TextViews 的内部重力似乎与问题无关。 -
我想试试这个表格布局如何..你不能使用表格布局
-
当然可以使用
TableLayout实现我想要的外观,但这不是问题。我对GridLayout是否可以实现我想要的东西很感兴趣。TableLayout将使用多个 layout() 传递来完成工作。GridLayout会更有效率。
标签: android android-gridlayout