ListView之EmptyView

From:http://blog.csdn.net/xiangqiao123/article/details/17994099

继承ListActivity比较方便

最新开发一个应用程序,需要用到当ListView为空时设置一些View来显示提示内容。我们已经知道ListView有一个公开的方法:setEmptyView(View v)

可是这个方法的设置是有限制的,就是设置View必需在当前的View hierarchy里,亦即这个View需要被add到当前一个View Tree的一个结点上,如果没有添加到结点上的话,调用setEmptyView(View v)是没有任何效果的。

它的过程大概是:

ListView listview = (ListView) findViewById(R.id.list);
View emptyView = findViewById(R.id.empty);
ViewGroup parentView = (ViewGroup) listview.getParent();
parentView.addView(newEmptyView, 2); // 你需要在这儿设置正确的位置,以达到你需要的效果。可能还需要正确的LayoutParamater参数
listview.setEmptyView(emptyView);

另:如果你直接设置在XML中也就不需要额外的添加到View Tree中了,因为它已经在那儿了,比如你的Layout是

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_vertical"
    android:orientation="vertical" >
    <include layout="@layout/fixed_headerview" />
    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:drawSelectorOnTop="false"
        android:fastScrollEnabled="true"
        android:textSize="18sp" />
    <TextView
        android:id="@+/empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:padding="15dip"
        android:text="@string/text_no_song"
        android:textSize="22sp"
        android:visibility="gone" />
</LinearLayout>

那你只需要以下的代码就可以了:

ListView listview = (ListView) findViewById(R.id.list);
View emptyView = findViewById(R.id.empty);
listview.setEmptyView(emptyView);
时间: 2025-01-10 02:43:32

ListView之EmptyView的相关文章

ListView add EmptyView 工具类和下载工具类

public class EmptyViewUtils {     public static View createLoadingView(Context context) {         LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.list_empty_loading, null);         linearLayout.setLayoutParams

Android开发:ListView添加EmptyView的帮助类

在项目开发过程中,会碰到许许多多的ListView,古老的方法就是每碰到一个ListView,就在xml文件里面写上emptyView,然后添加emptyView,其实在很多时候,不同ListView的emptyView是一样的,对此,写一个简单的帮助类,在ListView需要增加emptyView的时候,只要添加一行代码就可以实现了 帮助类的名称叫EmptyViewHelper,代码如下: public class EmptyViewHelper { private ListView mLis

实战EmptyView,为ListView的加载缓冲

前言 在我们的大多数应用中,会用到ListView,而ListView的数据,有时候是来自网络或者耗时操作之后得到的,这时候,有必要在数据显示之前提供一个友好的提示,结合上一篇文章的Android实战页面内容加载动画成果,再结合ListView自身的属性,我们来实现一下这种效果.首先见效果图 ListView的实现 ListView自身带有一个setEmptyView(View view);方法,用于显示没有数据时的视图,当然其本意或许是加载完成后如果数据为0显示的视图,其实我们也可以将它用来当

Android基础控件使用细节——ListView

这个系列准备了很久,由于项目比较紧,一直没时间写博客. ListView是Android开发中使用比较广泛的控件了,这里会结合实际开发中的问题,做一个汇总,并不断更新补充,希望以后可以帮到更多需要的朋友! 有时候为了精简代码,不使用xml布局文件了,直接setContentView(mListView);,这时就要用到代码里硬编码设置ListView的样式了,本人开发时遇到一个奇葩问题,给ListView设置分割线,没有效果,擦,坑爹呢,找了好多资料,遇到这问题的不是我一个人,竟然没人解决,有人

Android打造不一样的EmptyView

大家都对ListView非常熟悉,目测也会经常使用ListView的一个方法setEmptyView,来设置当数据加载中或者数据加载失败的一个提醒的效果,这个方法虽然使用起来简单,但是如果你提供一个复杂的布局,例如: 在数据加载失败后,添加一个Button让用户可以选择重新加载数据. 那么,你可能会这么做,find这个button,然后给button设置点击事件,好吧...一个两个的还可以忍受,那多了呢?比如我遇到的这个情况,在测试阶段,老板让加一个刷新的功能,要是按照这种方法,估计现在现在我还

ListView的基本使用技巧

1.headerView和footerView 2.ViewHolder 3.OnScrollListener 4.单行刷新 5.其他细节 ListView提供headerView和footerView 因为ListView其实是一个ScrollView,而Android的设计是不建议多个ScrollView包含在一起的,所以列表提供headerview和footerview. 使用这两个需要注意的事项,listView在滑动的时候可能会消耗headerView的事件,表现为,当点击header

ListView 小技巧

1.如何取消Listview的滚动条? setVerticalScrollBarEnabled(false) 2.白色的背景,ListView滚屏进行中的时候,背景会变成黑色,解决办法? android:cacheColorHint="#00000000" 3.ListView滚动条怎么一直都显示? android:fadeScrollbars="false" 4.ListView隔行变色: int[] colors={Color.BLUE,Color.CYAN};

【android】从源码上分析ListView/GridView调用setEmptyView不起作用的原因及解决办法

当我们使用ListView或GridView的时候,当列表为空的时候,我们往往需要一个Loading或者一段提示文字又或者一个特殊的View来提示用户操作,这个时候就用到了setEmptyView()方法. setEmptyView()其实是AdapterView的方法,而我们开发中常用到的ListView, GridView, ExpandableListView等都是继承于AdapterView的,所以可以直接调用这个方法. 但是问题来了,当你这个emptyview不在当前的View hie

MPAndroidChart饼图属性及相关设置

公司最近在做统计功能,所以用到了饼图,在网上查了一些资料最终决定使用MPAndroidChart,使用起来非常方便,还有一些问题通过各种查找,终于解决...废话不多说,先看下效果图: 布局文件: [java] view plain copy <com.github.mikephil.charting.charts.PieChart android:id="@+id/chart" android:layout_width="match_parent" andro