使用ListVIew 来设置EmptyView的时候须注意:

ListView listview = (ListView) findViewById(R.id.list);
View emptyView = findViewById(R.id.empty);
ViewGroup parentView = (ViewGroup) listview.getParent();
parentView.addView(emptyView, 2); // 一定要将EmptyView添加到ListView的ParentView上,不然无效果
listview.setEmptyView(emptyView)

如果你直接在XML中包含了emptyView,那么也就不需要再额外添加到Viewhierarchy中了,因为它已经在那儿了。

例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
> <View
android:layout_width="match_parent"
android:layout_height="45dip"
android:background="#CCC"
/> <ListView
android:id="@+id/lv_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@android:color/transparent"
/> <TextView
android:id="@+id/tv_empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="No Data"
android:textColor="@android:color/black"
android:visibility="visible"
/> </LinearLayout>
ListViewApiUseDemoActivity.java
package com.yongdaimi.android.androidapitest;

import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView; public class ListViewApiUseDemoActivity extends AppCompatActivity { private ListView lv_list;
private TextView tv_empty_view; private ArrayAdapter<String> arrayAdapter; @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview_api_use_demo);
initView(); /* tv_empty_view = new TextView(this);
tv_empty_view.setText("No Data");
tv_empty_view.setGravity(Gravity.CENTER);
ViewGroup viewGroup = (ViewGroup) lv_list.getParent();
viewGroup.addView(tv_empty_view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
*/
lv_list.setEmptyView(tv_empty_view);
String[] emptyData = new String[]{};
arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, emptyData);
lv_list.setAdapter(arrayAdapter); new Handler().postDelayed(new Runnable() {
@Override
public void run() {
String[] data = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, data);
lv_list.setAdapter(arrayAdapter);
}
}, 1500); new Handler().postDelayed(new Runnable() {
@Override
public void run() {
String[] data = {};
arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, data);
lv_list.setAdapter(null);
}
}, 4500); } private void initView() {
lv_list = findViewById(R.id.lv_list);
tv_empty_view = findViewById(R.id.tv_empty_view);
} }
												

android: ListView设置emptyView 误区的更多相关文章

  1. 给ListView设置emptyView

    给ListView设置emptyView 版权声明:本文为博主原创文章,未经博主允许不得转载. 使用ListView和GridView时,当列表为空时,默认是不显示任何内容的,这样对用户非常不友好,这 ...

  2. Android ListView 设置单选

    为 ListView 设置选中状态,需要经过如下几个步骤: 设置 ListView 的 android:choiceMode="singleChoice" 设置 ListView ...

  3. Android ListView 设置

    android:minHeight="80dip"//设置每一条的高度 android:divider="@null" //设置默认的分割线不显示 androi ...

  4. 【转】三十三、Android给ListView设置分割线Divider样式

    原文网址:http://www.cnblogs.com/linjiqin/archive/2011/11/12/2246349.html 给ListView设置分割线,只需设置如下两个属性: andr ...

  5. Android给ListView设置分割线Divider样式

    给ListView设置分割线,只需设置如下两个属性: android:divider="#000" //设置分割线显示颜色 android:dividerHeight=" ...

  6. Android ListView的item背景色设置以及item点击无响应等相关问题

    Android ListView的item背景色设置以及item点击无响应等相关问题 在Android开发中,listview控件是非常常用的控件,在大多数情况下,大家都会改掉listview的ite ...

  7. Android开发之ListView设置隔行变色

    public class HLCheckAdapter extends BaseAdapter { private List<HuoLiang> list; private Context ...

  8. Android下用程序的方法为ListView设置分割线Divider样式

    使用XML的时候可以使用android:divider属性为ListView设置分割线的样式(颜色或者资源文件),而在Java代码中默认提供的方法 listView.setDivider() 却只支持 ...

  9. 一起学android之设置ListView数据显示的动画效果(24)

    效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/40 ...

随机推荐

  1. CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  2. 记录一下JProfiler的使用

    刚入职实习,第四天了,昨晚老大安排我在公司机器上装个JProfiler看一情况. 然后网上都是什么跟tomcat一起使用的,所以折腾了很久才搞出来. 我这里没用什么服务器,因为公司用的是Play!框架 ...

  3. Warning | 3719 | 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.

    MySQL的“utf8”实际上不是真正的UTF-8.“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节. MySQL一直没有修复这个bug,他们在2010年发布了一个叫作 ...

  4. Ajax 的简介与使用

    一.什么是Ajax Ajax 的全称是 Asynchronous JavaScript and XML(即异步的 JavaScript 和 XML),是一种在无需重新加载整个网页的情况下,能够更新部分 ...

  5. Castle Windsor Ioc 一个接口多个实现解决方案

    介绍 Castle Windsor 是微软的Ioc类库,本文主要介绍解决一个接口多个实现的解决方案 接口和类 以下内容不是真实的实际场景,仅仅是提供解决一个接口多个实现的思路. 业务场景类 先假设有一 ...

  6. pypython解构

    *******重点 解构:把线性结构的元素解开,并按顺序的赋给其他变量 左边接纳的要与右边解开的个数一致. lst = [3,5] first,second = lst print(first,sec ...

  7. .NET Core、EF、Dapper、MySQL 多种方式实现数据库操作(动态注册实体类)

    目录 前言 一.技术选型 二.遇到的坑 2.1..NET Core 下 EF 的问题 2.2.数据库实体类的注册 切记坑 前言 最近在学习.研究 .NET Core 方面的知识,动手搭建了一些小的 D ...

  8. 微信支付报调用支付JSAPI缺少参数: sign

    检查后台返回参数中没有paySign字段

  9. 2019-2020-1 20199301《Linux内核原理与分析》第二周作业

    第二周Linux学习笔记 文件打包与解压缩 tar工具打包 tar的解压和压缩都是同一个命令,只需参数不同,使用较方便. 创建一个包时文件名必须紧跟在 -f 之后,解包一个文件(-x参数)到指定路径的 ...

  10. vuetify使用时遇到的坑:默认颜色显示不了

    原文链接: https://blog.csdn.net/weixin_44015248/article/details/86579777