Fragment里面的空Listview

Pet*_*r B 0 android listview android-listview android-fragments

我有一个垂直的LinearLayout和一个Listview和一个大按钮.一切都在片段之内.

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

由于它的片段不是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);
Run Code Online (Sandbox Code Playgroud)

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

gun*_*nar 11

在片段布局中添加emptyView(TextView,您希望的ImageView任何View实现),制作visible="gone"并使用它而不是您当前拥有的.所以代码应该改为:

ListView list2=(ListView)rootView.findViewById(R.id.scans_list);
View emptyView = rootView.findViewById(R.id.my_empty_view);
list2.setEmptyView(emptyView);
Run Code Online (Sandbox Code Playgroud)

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