Android中的setEmptyView怎么使用

Android中的setEmptyView怎么使用

这篇“Android中的setEmptyView怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android中的setEmptyView怎么使用”文章吧。

Android ListView之setEmptyView正确使用方法

Android中的setEmptyView怎么使用

假如emptyView和listview在布局中,已经属于同一个parent,设置EmptyView的代码如下

privatevoidsetEmptyView(){emptyTv.setText(getString(R.string.txt_no_data_refreshable));mList.setEmptyView(empty);}

假如没有数据,运行,一切正常。

下面我们执行一句代码后

mList.setVisibility(View.VISIBLE);

我们发现,emptyView看不到了,奇怪!

我们来看一下listview的setEmptyView的代码

publicvoidsetEmptyView(ViewemptyView){mEmptyView=emptyView;//Ifnotexplicitlyspecifiedthisviewisimportantforaccessibility.if(emptyView!=null&&emptyView.getImportantForAccessibility()==IMPORTANT_FOR_ACCESSIBILITY_AUTO){emptyView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);}finalTadapter=getAdapter();finalbooleanempty=((adapter==null)||adapter.isEmpty());updateEmptyStatus(empty);}

其中重点看updateEmptyStatus的源码

privatevoidupdateEmptyStatus(booleanempty){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中的setEmptyView怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注恰卡编程网行业资讯频道。

发布于 2022-04-11 21:18:05
收藏
分享
海报
0 条评论
27
上一篇:Android中如何利用Application设置全局变量 下一篇:Android中如何利用DialogFragment自定义背景与宽高
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码