2013-04-17 27 views
2

我正在动态地向GridLayout添加线性布局。我希望能像网格视图一样显示。是否有可能计算可以在一行中放置多少线性布局,并为网格布局设置列数,或者我应该使用gridview自动对齐它们。动态设置网格布局的行数和列数

回答

2

如果要根据GridLayout的宽度计算列计数,请覆盖onMeasure方法。它提供了widthSpecheightSpec作为参数,从中您可以使用MeasureSpec.getSize()以像素为单位获得实际宽度和高度。从那里,根据刚刚找到的GridLayout的宽度计算您想显示的列数,并使用setColumnCount使其显示该列数。

+1

我知道有一点晚了,但并不像这样简单。您还需要重新计算或使每个子视图的布局参数的行和列规格无效,并在调用'setColumnCount(int)'之前调用'requestLayout()'。不这样做通常会导致IllegalArgumentException。 – drdaanger