読者です 読者をやめる 読者になる 読者になる

ワシはワシが育てる

週刊少年ジャンプと任天堂のゲームが三度のメシより好きです。

GridViewにfooterViewをつけてローディングを表示する

Androidで無限スクロールする場合、追加読み込み発生時にProgressBarをfooterViewに付与するのが通常ですが、通常のGridViewにはfooterViewをつけることができません。

そこでfooterViewをつけられるカスタムのGridViewがオープンソースとしていくつか出ていますが、個人的にはandroid-GridViewWithHeaderAndFooterがオススメです。

(他のライブラリを試したところLolipop環境でバグが発生してしまったので、こちらのライブラリを使用しています。)

gradleを使用している場合はdependenciesに以下を追加します。

compile 'in.srain.cube:grid-view-with-header-footer:1.0.9'

インストール後はGridViewの代わりにin.srain.cube.views.GridViewWithHeaderAndFooterをlayoutに付与すれば使用できます。

例えばfooterViewを追加する際は以下のようにします。

GridViewWithHeaderAndFooter gridView;

View loadingView = LayoutInflater.from(context).inflate(R.layout.footer_view, null);
gridView.addFooterView(loadingView);
gridView.setAdapter(adapter);

setAdapterなど通常のGridViewが持つ機能も当然あるので、あまりトラブルなく使用できるかと思います。