AndroidのGridViewで幅を自動調整する方法は何ですか?

Android GridViewを自動調整幅にするには、列幅を動的に計算する方法を使用することができます。以下は実装手順です:

  1. ダイナミックグリッドビュー
public class DynamicGridView extends GridView {
    public DynamicGridView(Context context) {
        super(context);
    }

    public DynamicGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public DynamicGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int widthSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthSpec, heightMeasureSpec);
    }
}
  1. 動的グリッドビュー
<com.example.app.DynamicGridView
    android:id="@+id/gridView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:numColumns="auto_fit"
    android:columnWidth="120dp"
    android:verticalSpacing="10dp"/>
  1. カラム幅

注意:上記のコードでは、columnWidth属性の値は固定されていますので、必要に応じて変更してください。

bannerAds