我有一个垂直的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);
这样可行,但最初列表位于按钮上方,空列表位于按钮下方。 可以修复还是我必须改变整个方法?
答案 0 :(得分: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);
这样,当适配器检查if it's empty时,listView会自动将其可见性更改为GONE,如果存在,则空视图(在您的情况下为true)将设置为VISIBLE。