Android ListView setEmptyView

本文详细介绍了在Android应用中使用ListView或GridView时,当列表为空时如何使用setEmptyView()方法来显示一个特殊的提示View。包括了如何在布局文件中创建并设置复杂的提示View,以及如何在代码中引用并应用该View。还提供了实例代码,演示了如何在不同的场景下灵活运用这一功能。

http://my.eoe.cn/yaming/archive/879.html

 

1
       当我们使用ListView或GridView的时候,当列表为空的时候,我们需要一个特殊的View来提示用户操作,于是就有了setEmptyView().下面看看如何使用:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/list_view" /> <TextView android:id="@+id/empty_list_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="List view is empty" android:visibility="gone" /> </LinearLayout> 
1
2
3
ListView list= (ListView)findViewById(R.id.mylist); TextView tv= (TextView)findViewById(R.id.myempty); list.setEmptyView(tv); 

 

显示复杂的View

 

当列表内容为空的时候就会直接显示出来
但是有时候我们提示的View很复杂,我们不想写在同一个文件中我可以想下面这样:

1
2
3
4
5
6
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); 

1
2
3
4
inflater = getLayoutInflater(); 
emptyView = inflater.inflate(R.layout.empty_view, null); addContentView(emptyView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); list.setEmptyView(emptyView); 

注意:

1.不要让提示的View在不改显示的时候显示出来了

1
emptyView.setVisibility(View.GONE); 

2.setEmptyView()这个方法是有限制的,这个View必须在当前的View hierarchy的节点上,我们可以自己写在当前布局文件里面,也可以写在外面,但是需要把View添加到当前的View hierarchy的节点上。、

1
2
3
((ViewGroup)list.getParent()).addView(emptyView); //或者 addContentView(emptyView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 

^_^ 欢迎留言

此处用三种QQ通讯录的图做展示:
screenshot005.pngscreenshot007.pngscreenshot008.png

 

 

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
    1. TextView emptyView = new TextView(this);  
    2. emptyView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,  
    3.         LayoutParams.MATCH_PARENT));  
    4. emptyView.setTextColor(getResources().getColor(  
    5.         R.color.TextTaskTypeColor));  
    6. emptyView.setText("没有厅店积分明细表信息");  
    7. emptyView.setVisibility(View.GONE);  
    8. emptyView.setGravity(Gravity.CENTER);  
    9. ((ViewGroup) mListView.getParent()).addView(emptyView);  
    10. mListView.setEmptyView(emptyView);  
    11. // 设置数据  
    12. adapter = new ShopDetailReportAdapter();  
    13. mListView.setAdapter(adapter);  

转载于:https://www.cnblogs.com/likeju/p/4793810.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值