android GridLayout 分隔行

android GridLayout divider row

我正在尝试实现一个表格布局,其中有一个 header 和下面的一堆行。我选择了 GridLayout (android.support.v7.widget.GridLayout),因为某些元素需要跨越多列(但这些与问题无关)。

我的 header 每个单元格都包含一个带有一堆 TextView 的 LinearLayout,它们是用代码动态填充的,为了举例,请看下图。 第二行应该包含分隔符,它是一个简单的视图,应该跨越我的 header 列 (3)。

问题是分隔线的宽度 - 如果我选择 MATCH_PARENT,它会将 GridLayout 推向右边以填充整个剩余的 space。网格需要包裹内容并水平居中。在我看来,网格布局 (WRAP_CONTENT) 和分隔线布局 (MATCH_PARENT) 之间存在冲突。

如何在不硬编码的情况下固定分隔线的宽度?

http://i61.tinypic.com/2415eg5.png

红色,我的 LinearLayouts (header),绿色,GridLayout 本身,底部的细蓝线是分隔线。

谢谢, 莫

解决方案(如下所示): 我必须将分隔线的列权重设置为 1,而不指定宽度(实际上将其设置为零)。由于我在代码中处理所有这些的特定要求,解决方案是手动实例化 GridLayout.LayoutParams class 并使用

ColumnSpec = GridLayout.InvokeSpec(row_index, num_spanned_cols, weight)

希望这对以后的其他人有所帮助。

如果将宽度设置为 0dp 则给它 android:layout_weight="1" (你可以给它任何你想要的重量)它应该填满所有可用的 space 并且如果我正确理解你在问什么就不要超越你的界限