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