我想讓網格視圖的項目呈現完美的正方形。我使用了this answer建議的方法,它運行良好。Android網格查看項目縱橫比(使高度稍高於寬度)
以下是代碼(重寫網格視圖項目的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));
}
有人可以解釋這種行爲嗎?有什麼辦法可以實現我想要的嗎?
忘記提及調用'setMeasuredDimension(width,height);'now而不是'super.OnMeasure'。既然你現在決定自己的寬度和高度應該是什麼。 –
'setMeasuredDimension()'確實進行了必要的大小調整,但現在我看不到該項目的內容。由於項目是可點擊的,因此我可以看到該項目的輪廓。無論如何,安德魯的方法爲我工作。 –