GridLayout仅通过调整最后一列和最后一行的大小来匹配父级(AndroidStudio)

GridLayout仅通过调整最后一列和最后一行的大小来匹配父级(AndroidStudio),android,android-studio,grid-layout,android-gridlayout,Android,Android Studio,Grid Layout,Android Gridlayout,我有一个4列5行的GridLayout。如果将布局宽度和布局高度设置为包裹内容,则所有单元格的大小应相同。但是,当我将其设置为match\u parent时,除最后一行和最后一列中的单元格外,所有单元格的大小都保持不变,最后一行的高度急剧增加以填充剩余的垂直空间,最后一列的宽度增加以填充剩余的水平空间。也就是说,大多数单元格根本不调整大小,第5行和第4列变得非常扭曲 包装内容: 匹配父项: 如何让GridLayout在与父项匹配时保持所有单元格的大小相同?如果行和列的数量是静态的,则可以通过

我有一个4列5行的
GridLayout
。如果将
布局宽度
布局高度
设置为
包裹内容
,则所有单元格的大小应相同。但是,当我将其设置为
match\u parent
时,除最后一行和最后一列中的单元格外,所有单元格的大小都保持不变,最后一行的高度急剧增加以填充剩余的垂直空间,最后一列的宽度增加以填充剩余的水平空间。也就是说,大多数单元格根本不调整大小,第5行和第4列变得非常扭曲

包装内容

匹配父项


如何让GridLayout在与父项匹配时保持所有单元格的大小相同?

如果行和列的数量是静态的,则可以通过这种方式覆盖单元格视图在Measure上的方法(例如,如果要填充整个显示):


将所有单元格设置为列_weight=x,其中x是相同的值(1)

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  int width = getResources().getDisplayMetrics().widthPixels / COLUMN_COUNT;
  int height = getResources().getDisplayMetrics().heightPixels / ROW_COUNT;
  setMeasuredDimension(width, height);
}