使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,一般情况下,如果你是继承ListActivity,只要
<ListView android:id="@id/android:list".../>
<TextView android:id="@id/android:empty.../>
当列表为空时就会自动显示TextView
但是,如果继承Activity的话,想出现上面的效果,就需要手动
<ListView android:id="@+id/list" .../>
<TextView android:id="@+id/empty" .../>
ListView list= (ListView)findViewById(R.id.mylist);
TextView tv= (TextView)findViewById(R.id.myempty);
list.setEmptyView(tv);
误区:
setEmptyView(View)这个函数很有误导性,有时可能会在代码中写EmptyView,像下面这样:
TextView tv= new TextView(this);
tv.setText("this is a empty view")
setEmptyView(tv);
这样是不行的。。。
但是后来我在
老外的网上说下面这样是可行的,注意第4,5行:
TextView emptyView = new TextView(context);
emptyView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
emptyView.setText(“This appears when the list is empty”);
emptyView.setGravity(Gravity.CENTER);
emptyView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
emptyView.setVisibility(View.GONE);
((ViewGroup)listView.getParent()).addView(emptyView);
listView.setEmptyView(emptyView);
结果真的可行!
分享到:
相关推荐
Android ListView之setEmptyView正确使用方法 Android ListView组件提供了一个空数据视图设置方法setEmptyView,该方法可以在ListView中显示一个空视图,以便在没有数据时提供一个友好的用户体验。然而,在使用...
- 使用ListView的setAdapter()前,先调用listView.setEmptyView(),显示空状态视图,提高用户体验。 - 考虑使用RecyclerView替代ListView,RecyclerView具有更强大的功能和更好的性能。 以上就是关于ListView加载...
listView.setEmptyView(findViewById(R.id.empty_view)); // 为空时显示的视图 listView.setAdapter(new CustomListAdapter(this, new ArrayList())); // 初始为空 fetchJsonData(); // 发送请求获取数据 ``` 同时...
如果数据为空,调用ListView的`setEmptyView()`方法设置空列表视图。 ```java if (dataList.isEmpty()) { View emptyView = findViewById(R.id.empty_view); listView.setEmptyView(emptyView); } else { // ...
- **关联Empty View**:在代码中,通过ListView或GridView的setEmptyView()方法,将创建的空数据视图设置为对应的属性。 - **监听数据变化**:使用Adapter的registerDataSetObserver()方法注册一个数据集观察者,...
一个强大并且灵活的 Android RecyclerViewAdapter。 优化Adapter代码(减少百分之70%代码) ...添加加载动画(一行代码轻松切换5种默认动画) ...设置空布局(比Listview的setEmptyView还要好用!)
设置空视图的方法是setEmptyView。 8. **自定义Adapter的优化** - 使用ViewHolder模式减少findViewById的调用。 - 在getView方法中合理使用convertView,避免不必要的视图创建。 - 避免在getView方法中进行耗时...
- 使用`setAdapter()`前先调用`setEmptyView()`,当数据为空时显示指定的视图。 - 考虑使用`AbsListView`的`recycling`机制,只创建足够的视图来填充屏幕。 10. **分页加载** 当数据量过大时,可以实现下拉刷新...
可以使用ViewHolder设计模式减少查找视图的时间,通过设置`android:cacheColorHint="#00000000"`消除滚动时的闪烁,以及利用`setAdapter()`前先调用`setEmptyView()`来处理数据为空的情况。 7. **刷新与加载更多**...
同时,为了保持性能,记得在不需要显示内部ListView时调用setEmptyView()来隐藏它,避免不必要的绘制和计算。 为了在ListView中插入表格视图,可以考虑使用GridView或者TableLayout。GridView可以看作是水平方向和...
- 使用Listview的`setEmptyView()`方法,当数据为空时显示特定视图。 以上就是关于ListView在Android开发中的基本使用和优化策略,对于初学者来说,熟练掌握这些知识能够帮助你创建出功能丰富且性能良好的列表型...
此外,使用`setAdapter()`方法前先调用`setEmptyView()`可以展示一个空视图,当列表为空时显示。 8. **Header/Footer动态添加** 在运行时动态添加Header和Footer,可以增强ListView的动态性,例如在加载数据时显示...
比Listview的setEmptyView还要好用。 添加拖拽、滑动删除 开启,监听即可,就是这么简单。 树形列表 比ExpandableListView还要强大,支持多级。 自定义ViewHolder 支持自定义ViewHolder,让开发者随心所欲。 扩展...
实现这个功能的关键在于设置ListView的`setEmptyView()`方法,该方法接收一个View对象作为参数,当ListView的数据为空时,这个View将会被显示。 1. **创建布局文件**: 首先,我们需要创建一个XML布局文件,设计一...
数据为空的时候,ListView可以使用setEmptyView (View emptyView) 方法来我们需要的统一界面。数据加载失败呢?我们也可以统一进行处理。 //下面这个类是简单地封装用于无数据及加载错误的一个页面。 public class ...
Just a Wheel—— A easier way to setEmptyView. Without having to write xml file every time. It supports AdapterView(ListView,GridView,etc) and RecyclerView. Dependency compile '...