【发布时间】:2017-09-22 10:39:50
【问题描述】:
我想让我的网格视图中的项目成为完美的正方形。我用this answer推荐的方法,效果很好。
以下是代码(网格视图项的重写onMeasure方法)
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}
现在我想让项目的高度比项目宽度大 1.2 倍。所以,我修改了如下代码。
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, (int) (widthMeasureSpec * 1.2));
}
但是,这些项目变得很长,甚至不能再放入屏幕了。
令人惊讶的是,如果我将 heightMeasureSpec 设置为小于 widthMeasureSpec 的值,项目高度仍然大于宽度。以下代码使项目更高。
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, (int) (widthMeasureSpec * 0.5));
}
有人可以解释这种行为吗?有什么方法可以实现我想要的吗?
【问题讨论】:
标签: android