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吧


目录
相关文章
|
6月前
|
安全 Linux API
【最全】OpenClaw保姆级部署方案(阿里云/Win11/MacOS/Linux)+免费大模型API配置+高级Skill实战+避坑指南
“熬夜部署完OpenClaw,却发现它只会陪聊?”——这是2026年无数“小龙虾”用户的共同困惑。作为GitHub下载排行第11名的开源AI智能体,OpenClaw(又称Clawdbot)的核心价值并非基础对话,而是通过Skills(技能)扩展实现“真正做事”的能力。但Skills的安装方式繁杂、安全风险暗藏、优质资源分散,让新手望而却步;更让新手头疼的是,全平台部署流程不统一、免费大模型API配置繁琐,导致多数人卡在部署环节,无法解锁OpenClaw的核心能力。
1187 3
|
8月前
|
弹性计算 安全 Linux
2026年新手小白租用阿里云服务器全流程步骤(手把手教程)
对于首次接触云服务器的新手来说,租用流程可能略显复杂。以阿里云为例,其提供多种服务器类型与配置选项,适配不同需求。下面用通俗语言拆解从注册到完成租用的全步骤,结合最新配置细节与价格参考,帮助快速拥有专属云服务器。
|
5月前
|
存储 SQL 数据挖掘
事实表是什么?事实表和维度表有什么区别?
数据仓库中,事实表存储可度量的业务数值(如销售额、订单量),字段少、行数巨多、高频更新;维度表则描述分析上下文(如时间、客户、产品属性),字段多、行数少、相对静态。二者通过主键-外键关联,构成星型模型,支撑多维分析与决策——本质即“度量”与“描述”的协同。
|
6月前
|
SQL 搜索推荐 数据挖掘
检索的终局是决策:OLAP 如何重塑 Hologres 多模混合检索的价值边界
HSAP 2.0是Hologres提出的混合搜索与实时分析架构,首次将全文/向量检索与OLAP能力深度集成,实现“边查边算”。支持一条SQL完成语义匹配、结构化过滤与多维聚合,消除ETL延迟,保障强一致性,让检索系统从信息工具跃升为驱动商业决策的实时洞察引擎。
|
7月前
|
存储 关系型数据库 MySQL
索引为什么快?若依数据库索引原理深度解析
深入了解数据库索引的核心工作原理,我会用通俗比喻 + 核心结构(B + 树)拆解 + 执行流程的方式讲解,从底层逻辑说清 “索引为什么能提速”,同时结合 MySQL InnoDB(若依框架默认数据库引擎)的实际实现,让原理落地可理解
338 4
|
机器学习/深度学习 人工智能 自然语言处理
数字化转型时代,HR如何用人事管理系统突破效率天花板?
本文深入剖析传统HR面临的四大效率困局,包括招聘低效、考勤错误频发、绩效管理混乱及数据决策滞后,并提出人事管理系统的核心功能矩阵作为解决方案。文章详细解读了招聘自动化引擎、智能考勤生态、绩效飞轮系统和数据决策驾驶舱的创新应用,帮助HR突破效率瓶颈。同时,针对系统选型提供了科学指南,强调适配性与实施策略的重要性。最后,展望HR系统未来三大进化方向:体验驱动、智能预测和生态互联,助力企业实现人力资源管理的数字化转型。
|
安全 数据中心
数据中心服务器机架是什么
数据中心服务器机架是用于容纳服务器、存储器等IT设备的结构,旨在提升数据中心的管理与运营效率。常见的类型包括开放式机架、封闭式机柜和壁挂式机架,每种类型各有特点,适用于不同的场景需求。选择时需考虑尺寸、承重、冷却效率及安全性等因素,以确保最佳的使用效果。
1719 4
|
存储 分布式计算 Hadoop
Hadoop节点存储方式
【5月更文挑战第20天】
486 2

热门文章

最新文章