ListView设置EmptyView之后不显示

简介: 在代码里简单设置里一下emptyView后发现根本不显示

在代码里简单设置里一下emptyView后发现根本不显示,代码如下:


TextView tv= new TextView(this); 
tv.setText("this is a empty view") 
list.setEmptyView(tv); 
复制代码


研究发现自己对ListView的Emptyview的理解有误。它并不是添加进ListView中,仅仅是与ListView联动。

怎么理解?我们先看看我们一般如何使用?

布局xml:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></ListView>
    <LinearLayout
        android:id="@android:id/empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical">
        ....
    </LinearLayout>
</LinearLayout>
复制代码


代码:


mLv = (ListView) findViewById(R.id.lv);
mLv.setAdapter(...);
mLv.setEmptyView(findViewById(android.R.id.empty));
复制代码


所以可以看到,EmptyView必须与ListView同级,也就是说add到ListView的父view下,然后再set给ListView。

ListView会控制它显示或者隐藏即可。其实原理很简单。

那么纯代码怎么办?我们需要手动将它add到ListView的父view下,如下:


TextView emptyView = new TextView(context);
emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
emptyView.setText(“This appears when the list is empty”);
emptyView.setVisibility(View.GONE);
((ViewGroup)list.getParent()).addView(emptyView);
list.setEmptyView(emptyView);
复制代码

这样就可以了,还是很麻烦,所以还是老实写xml吧


目录
相关文章
|
开发工具 数据安全/隐私保护 git
Git报错 Incorrect username or password (access token) 的解决方式
Git报错 Incorrect username or password (access token) 的解决方式
4126 0
Git报错 Incorrect username or password (access token) 的解决方式
|
3月前
|
安全 Linux API
【最全】OpenClaw保姆级部署方案(阿里云/Win11/MacOS/Linux)+免费大模型API配置+高级Skill实战+避坑指南
“熬夜部署完OpenClaw,却发现它只会陪聊?”——这是2026年无数“小龙虾”用户的共同困惑。作为GitHub下载排行第11名的开源AI智能体,OpenClaw(又称Clawdbot)的核心价值并非基础对话,而是通过Skills(技能)扩展实现“真正做事”的能力。但Skills的安装方式繁杂、安全风险暗藏、优质资源分散,让新手望而却步;更让新手头疼的是,全平台部署流程不统一、免费大模型API配置繁琐,导致多数人卡在部署环节,无法解锁OpenClaw的核心能力。
935 3
|
5月前
|
弹性计算 安全 Linux
2026年新手小白租用阿里云服务器全流程步骤(手把手教程)
对于首次接触云服务器的新手来说,租用流程可能略显复杂。以阿里云为例,其提供多种服务器类型与配置选项,适配不同需求。下面用通俗语言拆解从注册到完成租用的全步骤,结合最新配置细节与价格参考,帮助快速拥有专属云服务器。
|
11月前
|
Java Apache 开发者
解决java.lang.IllegalArgumentException: Invalid uri由无效查询引起的问题
最后,当你修改代码以避免这个异常时,保持代码的整洁和可读性同样重要。注释你的代码,用意图清晰的方法名,并确保逻辑简单明了,这样在未来你或其他开发者需要时可以轻松地维护它。
1239 20
|
机器学习/深度学习 人工智能 自然语言处理
数字化转型时代,HR如何用人事管理系统突破效率天花板?
本文深入剖析传统HR面临的四大效率困局,包括招聘低效、考勤错误频发、绩效管理混乱及数据决策滞后,并提出人事管理系统的核心功能矩阵作为解决方案。文章详细解读了招聘自动化引擎、智能考勤生态、绩效飞轮系统和数据决策驾驶舱的创新应用,帮助HR突破效率瓶颈。同时,针对系统选型提供了科学指南,强调适配性与实施策略的重要性。最后,展望HR系统未来三大进化方向:体验驱动、智能预测和生态互联,助力企业实现人力资源管理的数字化转型。
|
安全 数据中心
数据中心服务器机架是什么
数据中心服务器机架是用于容纳服务器、存储器等IT设备的结构,旨在提升数据中心的管理与运营效率。常见的类型包括开放式机架、封闭式机柜和壁挂式机架,每种类型各有特点,适用于不同的场景需求。选择时需考虑尺寸、承重、冷却效率及安全性等因素,以确保最佳的使用效果。
1487 4
|
安全 测试技术
Win系统 - 内存稳定性测试软件(MemTest)
Win系统 - 内存稳定性测试软件(MemTest)
1097 0
Win系统 - 内存稳定性测试软件(MemTest)
【Qt项目专栏】贪吃蛇小游戏1.0
【Qt项目专栏】贪吃蛇小游戏1.0
694 5
|
Android开发
【Android 插件化】VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(二)
【Android 插件化】VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(二)
783 0
【Android 插件化】VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(二)
|
存储 分布式计算 Hadoop
Hadoop节点存储方式
【5月更文挑战第20天】
423 2