使用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"><Viewandroid:layout_width="match_parent"android:layout_height="45dip"android:background="#CCC"/><ListViewandroid:id="@+id/lv_list"android:layout_width="match_parent"android:layout_height="match_parent"android:cacheColorHint="@android:color/transparent"/><TextViewandroid: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;@Overrideprotected 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() {@Overridepublic 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() {@Overridepublic 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);}}

转载于:https://www.cnblogs.com/yongdaimi/p/11050886.html

android: ListView设置emptyView 误区相关推荐

  1. Android ListView 设置分割线的设置

    Android ListView 设置分割线 ListView中设置分割线一般有两种方法,一种是使用原本的API另一种方法是添加一个View设置宽度很小. 第一种方法:设置android:divide ...

  2. ListView设置EmptyView之后不显示

    在代码里简单设置里一下emptyView后发现根本不显示,代码如下: TextView tv= new TextView(this); tv.setText("this is a empty ...

  3. android listview设置选中时的item的背景色

    今天实在不知道写些什么内容,所以自己在网上找了些资料,觉得还可以,所以还是写一下,觉得每天写些东西的习惯不能荒废. 默认情况下使用ListView背景色是黑色,选中item的高亮颜色是菊黄色,很多时候 ...

  4. Android ListView 设置

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

  5. Android之设置ListView数据显示的动画效果

    效果图: 平时我们要实现ListView数据显示时的动画效果,可以使用LayoutAnimationController为ListView设置动画效果,并通过ListView的setLayoutAni ...

  6. android listview 选中状态,Android:在ListView打开时将项目设置为选中状态?

    我正在使用适配器并且不想设置自定义背景颜色,但在drawable xml中使用android:state_selected. SetSelection对我不起作用,但也许这也是因为我需要SetNoti ...

  7. android 设置listview滚动条,Android ListView 滚动条的设置详解及实例代码

    Android ListView 滚动条的设置详解 1.滚动条的属性 android:scrollbarAlwaysDrawHorizontalTrack 设置是否始终显示水平滚动条.这里用Scrol ...

  8. Android listView Item 高度设置

    Android listView Item 高度设置 问题: 设置listview item的高度比实际内容要高,怎么做: 如果需要将listView的item设置得比包裹内容还要高,通过设置item ...

  9. android ListView包含Checkbox滑动时状态改变

    题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...

最新文章

  1. RabbitMQ 高频考点
  2. P3项目全球模板狗血设置之二 --- 移动类型523收货不能自动创建批次号
  3. C++算法七:插入排序
  4. HTML渐变背景不重复,如何停止重复自身的背景颜色渐变? (css)
  5. jad 反编译eclipse操作步骤
  6. 关于公众号文章搜索,有两个小技巧
  7. windows cmd修改ip地址
  8. 南京邮电大学 RE-WxyVM
  9. c语言单片机仿真keil,如何在keil中仿真stm32单片机
  10. 图解最短路径之迪杰斯特拉算法(Java实现)
  11. c# 监听 Modern Standby 下的电源状态(Sleep mode)
  12. 功率放大器的输入阻抗和输出阻抗的关系
  13. 天工开物 #5 我的 Linux 开发机
  14. 异质性分析:系数平滑可变模型
  15. 《转》批处理经典入门教程!(从不懂到高手)
  16. 北大青鸟java初级培训_java初级编程
  17. 没想到锤子坚果R1的投屏功能,还可以这么强大!
  18. python竖式计算_Python 模拟竖式大数乘法
  19. swift开发之--Protocol(协议)
  20. 阿里实习内推面试(被拒)

热门文章

  1. wordpress 文章php,wordpress怎么发长文章
  2. 一款iPhone App推广中得来的18条经验教训
  3. 线性回归的从零开始实现-08-p3
  4. 问卷调查模块实现的过程中的历程
  5. 前端 CSS 变量简介及基本使用方法
  6. 用MySQl创建供应商标_建立一个供应商、零件数据库。其中供应商表S(Sno,Sname,Zip - 问答库...
  7. java面试题 返回值类型不同,可以重载吗,为什么?
  8. 今天入手了二手X61
  9. BSD/MIT/Apache许可证印象尚可
  10. 如何使用QGIS下载在线地图