Fragment里面的空Listview

时间:2013-11-19 08:49:08

标签: android listview android-listview android-fragments

我有一个垂直的LinearLayout,一个Listview和一个大按钮。所有都在片段内。

我想要做的是在执行某些操作后找不到任何内容时显示空列表。

由于Fragment不是ListActivity,因此当列表为空时,我无法使用ListView内部的空视图概念。

我正在使用此代码显示空列表(在(MyFragment extends Fragment) - > onCreateView方法中调用):

ListView list2=(ListView)rootView.findViewById(R.id.scans_list);
View emptyView = inflater.inflate(R.layout.scanslist_empty,null);
((ViewGroup)list2.getParent()).addView(emptyView, 0); 
list2.setEmptyView(emptyView);

这样可行,但最初列表位于按钮上方,空列表位于按钮下方。 可以修复还是我必须改变整个方法?

1 个答案:

答案 0 :(得分:11)

在片段布局中添加emptyView(TextViewImageView,您希望的任何View实现),将其设为visible="gone"并使用它而不是您目前拥有的。所以代码应该改为:

ListView list2=(ListView)rootView.findViewById(R.id.scans_list);
View emptyView = rootView.findViewById(R.id.my_empty_view);
list2.setEmptyView(emptyView);

这样,当适配器检查if it's empty时,listView会自动将其可见性更改为GONE,如果存在,则空视图(在您的情况下为true)将设置为VISIBLE。