浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Android】ヘッダー付きのGridViewを「HeaderFooterGridView」を使って実装する

Android アプリでヘッダー付きの GridView を実装したので備忘録としてまとめ。
使用したライブラリは「HeaderFooterGridView」です。
今回はヘッダーしか実装しませんでしたが、今後フッターの実装が必要になったときに楽かな?と思い、こちらをチョイスしました。

「HeaderFooterGridView」の GitHub はこちらから。

recruit-mp/android-HeaderFooterGridView: HeaderFooterGridView supports adding header rows and footer rows to GridView for Android.
https://github.com/recruit-mp/android-HeaderFooterGridView

最終更新が 2016年とちょっと古いですが、問題なく動作しました!

 

実装方法ですが、まず app/build.gradle に下記を追加します。

dependencies {
    ......
    implementation 'jp.co.recruit_mp:android-HeaderFooterGridView:0.2.5'  // この行を追加
}

上記を追加後、Sync Project with Gradle Files を実行します。

上記が完了したら、layout ファイルの GridView の代わりに下記を追加します。

<jp.co.recruit_mp.android.headerfootergridview.HeaderFooterGridView
        android:id="@+id/gridview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="2"/>

numColumns は 1行当たりの項目数です。
私が開発しているプロジェクトでは、1行あたり 2つの項目を表示したかったので、2 を設定しています。

次に、Activity の Java ファイルを開き、下記のように実装します。

HeaderFooterGridView gridView = findViewById(R.id.gridview);
// Header を追加
View header = LayoutInflater.from(this).inflate(R.layout.grid_header, null, false);
gridView.addHeaderView(header);
// Adapter の設定
GridAdapter adapter = new GridAdapter(this.getApplicationContext(),R.layout.grid_item, list);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        // 項目をクリックした時の処理を記述
    }
});

GridView との違いは、2~4行目のヘッダーの追加だけです。
それ以外は、GridView と全く同じように実装すればOKでした。
そのため、既に GridView の実装が完了している場合、修正はとても簡単だと思います!

 

以上、Android アプリでヘッダー付きの GridView を実装できるライブラリ「HeaderFooterGridView」のご紹介でした。
ご参考になれば幸いです。

  • この記事いいね! (0)