垃圾的Android-ListView-setEmptyView
我们知道ListView组件提供了一个空数据是的视图设置方法setEmptyView,该方法存在一个诟病,就是空视图和listview组件要在一个Parent中,这个就不在此细说,下面说另一个问题,原因其实和前面那个问题同出一辙。
假如emptyView和listview在布局中,已经属于同一个parent,设置EmptyView的代码如下
private void setEmptyView(){emptyTv.setText(getString(R.string.txt_no_data_refreshable));mList.setEmptyView(empty);}
假如没有数据,运行,一切正常。
下面我们执行一句代码后
mList.setVisibility(View.VISIBLE);
我们发现,emptyView看不到了,奇怪!
我们来看一下listview的setEmptyView的代码
public void setEmptyView(View emptyView) {mEmptyView = emptyView;// If not explicitly specified this view is important for accessibility.if (emptyView != null&& emptyView.getImportantForAccessibility() == IMPORTANT_FOR_ACCESSIBILITY_AUTO) {emptyView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);}final T adapter = getAdapter();final boolean empty = ((adapter == null) || adapter.isEmpty());updateEmptyStatus(empty);}
其中重点看updateEmptyStatus的源码
private void updateEmptyStatus(boolean empty) {if (isInFilterMode()) {empty = false;}if (empty) {if (mEmptyView != null) {mEmptyView.setVisibility(View.VISIBLE);setVisibility(View.GONE);} else {setVisibility(View.VISIBLE);}if (mDataChanged) { this.onLayout(false, mLeft, mTop, mRight, mBottom); }} else {if (mEmptyView != null) mEmptyView.setVisibility(View.GONE);setVisibility(View.VISIBLE);}}
我们发现,控制emptyView的显示,就是隐藏listview,这两个试图互相隐藏显示,来达到效果,而且updateEmptyStatus方法只有在listview的setEmptyView时才会执行,所以当你执行 mList.setVisibility(View.VISIBLE)的时候,listview被设置为可见,它覆盖了emptyView,所以你看不到,如果想显示emptyView,那就再执行一遍setEmptyView方法。
垃圾的Android-ListView-setEmptyView相关推荐
- android: ListView设置emptyView 误区
使用ListVIew 来设置EmptyView的时候须注意: ListView listview = (ListView) findViewById(R.id.list);View emptyView ...
- android ListView包含Checkbox滑动时状态改变
题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...
- Android ListView 自定义背景后 滚动时的背景变黑问题
ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉,原因是,滚动时,列表里面的view重绘时,用的依旧 ...
- Android listview viewholder
2019独角兽企业重金招聘Python工程师标准>>> Android ListView ViewHolder 利用adapter中的getView的 contentView 的复用 ...
- Android ListView常用用法
ListView是比较常用的控件,但一直都觉得创建ListView步骤有点繁琐,故在此总结一下,方便查阅. 程序效果是实现一个ListView,ListView里面有标题,内容和图片,并加入点击和长按 ...
- 【腾讯Bugly干货分享】Android ListView与RecyclerView对比浅析--缓存机制
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5811d... 作者:黄宁源 一,背景 RecyclerView是谷歌官方出的一 ...
- Android ListView异步加载图片乱序问题,原因分析及解决方案
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...
- Android ListView 圆角
android ListView实现圆角实例教程二 Android框架浅析之锁屏(Keyguard)机制原理 http://www.eoeandroid.com/thread-181604-1-1.h ...
- Android listView 去掉header和footer中的分割线
Android listView 去掉header和footer中的分割线 方法一: 在listView中加上android:headerDividersEnabled="false&quo ...
- android ListView布局之二(是用simpleAdapter绑定数据)
main.xml主布局文件,代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
最新文章
- python查询数据库带逗号_浅谈pymysql查询语句中带有in时传递参数的问题
- WMAP环境上传图片报错【找不到临时文件夹】解决方案
- 建立apk定时自动打包系统第三篇——代码自动更新、APP自动打包系统
- MongoDB 语法陷阱(转自51CTO)
- 军事医学研究院应晓敏组招聘博士后
- 在spring中使用JdbcTemplate进行数据库管理操作
- day20 java的String
- 探探自动右滑_利用AccessibilityService实现探探自动右划
- 使用Linux的tzselect功能,查看各个洲都有哪些国家(地区)
- VMware Workstation 常见问题解决
- 图论算法:稳定婚姻问题,如何找到最适合自己的另一半
- 个人CTF入门训练过程WriteUp
- 技术岗的职业规划_技术型员工职业生涯规划
- 机器学习、深度学习、神经网络还傻傻分不清吗?
- 403错误服务器未响应是什么意思,什么是HTTP ERROR 403?导致403错误的主要原因及解决方法...
- 傻瓜式教学——手把手教你电脑三种方式连接打印机
- 高职对口计算机试题ppt,高职单招中职计算机练习卷和答案.doc
- java ebcdic_java EBCDIC | 学步园
- 缩略图方式下, 资源管理器,不能显示文件名
- AD19 报错记录 Un-Routed Net Constraint: Net LED Between Pad J3-10