【发布时间】:2015-07-26 10:24:43
【问题描述】:
我正在尝试实现一个表格布局,该布局在其下方有一个标题和一堆行。我选择了 GridLayout (android.support.v7.widget.GridLayout),因为某些元素需要跨越多列(但这些与问题无关)。
我的每个标题单元格都包含一个带有一堆 TextView 的 LinearLayout,它们是动态填充代码的,为了举例,请看下图。 第二行应该包含一个简单视图的分隔符,它应该跨越我的标题列 (3)。
问题在于分隔线的宽度 - 如果我选择 MATCH_PARENT,它将推动 GridLayout 向右填充整个剩余空间。网格需要包裹内容并水平居中。在我看来,网格布局 (WRAP_CONTENT) 和分隔线布局 (MATCH_PARENT) 之间存在冲突。
如何在不硬编码的情况下固定分隔线的宽度?
http://i61.tinypic.com/2415eg5.png
红色是我的 LinearLayouts(标题),绿色是 GridLayout 本身,底部的蓝色细线是分隔线。
谢谢, 莫
解决方案(如下所示): 我必须将分隔线的列重设置为 1,而不指定宽度(实际上将其设置为零)。由于我需要在代码中处理所有这些问题,因此解决方案是手动实例化 GridLayout.LayoutParams 类并使用
ColumnSpec = GridLayout.InvokeSpec(row_index, num_spanned_cols, weight)
希望这对将来的其他人有所帮助。
【问题讨论】:
-
不知何故我无法弄清楚你想要达到的目标。你能发布一张你所期待的“MS Paint made”图片吗?
-
嗨,看看这里link。如果我删除分隔线,我会得到正确的布局。
标签: android android-layout android-gridlayout