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」のご紹介でした。
ご参考になれば幸いです。