使用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. Bash基础——内置命令

    前言 Shell有很多内置在其源代码中的命令.由于命令是内置的,所以Shell不必到磁盘上搜索它们.内置命令执行速度更快,不同的Shell内置命令有所不同. 如何查找内置命令 之前查了好久怎么收索内置 ...

  2. FastDateFormat日期工具类

    原文:https://blog.csdn.net/u013823538/article/details/80197476 public class DateUtil { public static f ...

  3. Codeforces #367 (Div. 2) D. Vasiliy's Multiset (trie 树)

    http://codeforces.com/group/1EzrFFyOc0/contest/706/problem/D 题目:就是有3种操作 + x向集合里添加 x - x 删除x元素,(保证存在 ...

  4. 算法102----360笔试(m进制不进位相加最大值)

    转自:https://blog.csdn.net/qq_18310041/article/details/99656445 import copy # m进制 m = 5 n = 5 line = [ ...

  5. m_atoi

    自己实现atoi函数 函数定义:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结 ...

  6. PHP搭建大文件切割分块上传功能示例

    转载:https://www.jb51.net/article/101931.htm 背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示“该文件 ...

  7. Liunx使用

    进入文件后的操作 1. vi打开文件后是命令模式状态,要用i或者a命令才可进入可编辑的状态哟. 2.在编辑模式的情况下敲完内容,这个时候就应该保存文件了. 保存文件要按esc,这样就会退回vi的命令模 ...

  8. 001_软件安装之《MATLAB2016安装》

    测试电脑:win7 64位操作系统 下载地址: 链接:https://pan.baidu.com/s/1xkyhF6pdkx_kZiNjFireZw 密码:mvpp     链接:https://pa ...

  9. tarjan模板完整版

    https://www.luogu.org/problem/P2863 #include<cstdio> #include<vector> using namespace st ...

  10. 【概率论】5-6:正态分布(The Normal Distributions Part I)

    title: [概率论]5-6:正态分布(The Normal Distributions Part I) categories: - Mathematic - Probability keyword ...