用于列表的空视图
作为AdapterView的子类,ListView支持显示一种被称为“空视图”的特殊View。再有内容时显示列表视图,否则显示空视图。
有两种方法设置空视图,即在代码中指定的和使用XML布局文件。
代码中指定
使用AdapterView对象的 public void setEmptyView(View emptyView);方法
@Override
public void onStart() {
super.onStart();
View emptyView = getActivity().getLayoutInflater().inflate(R.layout.listitem_empty_view, null);
((ViewGroup)this.getListView().getParent()).addView(emptyView);
this.getListView().setEmptyView(emptyView);
}
使用XML布局文件
创建XML布局文件,同时定义ListView和空视图。然后将@android:id/list和@android:id/empty资源ID分别赋予给它们,以实现ListView在两种视图模式之间的自动切换。
布局文件:fragment_crime_list.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</ListView>
<TextView android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/empty_list"
/>
</LinearLayout>
在ListFragment中引用
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_crime_list, null);
return view;
}