グリッドビューのアイテムを完全な四角形にしたいと考えました。私はthis answerで提案された方法を使用し、それはうまくいった。続きAndroidグリッド表示アイテムのアスペクト比(幅よりも少し高さを高くします)
は今、私はアイテムの幅よりもアイテムの高さが1.2倍の大きさにしたいコード(グリッドビューアイテムのオーバーライドonMeasure
方法)
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}
です。そこで、以下のようなコードを修正しました。
@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));
}
誰かがこの動作を説明できますか?私が欲しいものを達成する方法はありますか?
「super.OnMeasure」の代わりに 'setMeasuredDimension(width、height);'を呼び出すことを忘れてしまった。幅と高さがどのようにすべきかあなた自身が決めるからです。 –
'setMeasuredDimension()'は必要なサイズ調整を行いましたが、アイテムの内容が表示されません。アイテムがクリック可能なのでクリックしたときにアイテムの概要を見ることができます。とにかく、アンドリューの方法は私のために働いた。 –