我想通过窗口的宽度设置GridLayout的列数。

但是,这类代码在onCreate()函数中不起作用。

GridLayout gLayout = (GridLayout)findViewById(R.id.a_grid_layout);
gLayout.setColumnCount(4);

最佳答案

如果要基于GridLayout的宽度设置列数,则必须重写onMeasure方法。它提供widthSpec和heightSpec作为参数,您可以使用MeasureSpec.getSize()从中获取实际的宽度和高度(以像素为单位)。从那里,根据刚找到的GridLayout的宽度计算要显示的列数,然后使用setColumnCount使其显示该列数。

09-30 14:42
查看更多