ListViewに表示する要素がない場合に、emptyを示す画像を表示する。
setEmptyView()
という便利なメソッドがあるので、簡単に実装できる。
直接関係ないが、プログラムで実装した際、画像を中央に寄せるのにちょっと調べたのでメモしておく。
XMLファイルで定義
xml
<ImageView
android:id="@+id/emptyImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
...
java
...
emptyImageView = (ImageView)findViewById(R.id.emptyImageView);
emptyImageView.setImageResource(R.mipmap.empty);
listView.addEmptyView(emptyImageView);
プログラムで定義
java
ImageView emptyImageView = new ImageView(getActivity());
emptyImageView.setImageResource(R.mipmap.empty);
// 中央寄せにする
emptyImageView.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
emptyImageView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
((ViewGroup) getListView().getParent()).addView(emptyImageView);
getListView().setEmptyView(emptyImageView);
おわり