Android ListView setEmptyView
2017-08-09 00:01
351 查看
当我们使用ListView或GridView的时候,当列表为空的时候,我们需要一个特殊的View来提示用户操作,于是就有了setEmptyView().下面看看如何使用:
显示复杂的View
当列表内容为空的时候就会直接显示出来
但是有时候我们提示的View很复杂,我们不想写在同一个文件中我可以想下面这样:
或者
注意:
1.不要让提示的View在不改显示的时候显示出来了
2.setEmptyView()这个方法是有限制的,这个View必须在当前的View hierarchy的节点上,我们可以自己写在当前布局文件里面,也可以写在外面,但是需要把View添加到当前的View hierarchy的节点上。、
完整示例:
<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>
ListView list= (ListView)findViewById(R.id.mylist); TextView tv= (TextView)findViewById(R.id.myempty); list.setEmptyView(tv);
显示复杂的View
当列表内容为空的时候就会直接显示出来
但是有时候我们提示的View很复杂,我们不想写在同一个文件中我可以想下面这样:
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);
或者
emptyView = getLayoutInflater().inflate(R.layout.empty_view, null); addContentView(emptyView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); list.setEmptyView(emptyView);
注意:
1.不要让提示的View在不改显示的时候显示出来了
emptyView.setVisibility(View.GONE);
2.setEmptyView()这个方法是有限制的,这个View必须在当前的View hierarchy的节点上,我们可以自己写在当前布局文件里面,也可以写在外面,但是需要把View添加到当前的View hierarchy的节点上。、
((ViewGroup)list.getParent()).addView(emptyView); //或者 addContentView(emptyView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PAREN a3ce T));
完整示例:
TextView emptyView = new TextView(this); emptyView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); emptyView.setTextColor(getResources().getColor( R.color.TextTaskTypeColor)); emptyView.setText("没有厅店积分明细表信息"); emptyView.setVisibility(View.GONE); emptyView.setGravity(Gravity.CENTER); ((ViewGroup) mListView.getParent()).addView(emptyView); mListView.setEmptyView(emptyView); // 设置数据 adapter = new ShopDetailReportAdapter(); mListView.setAdapter(adapter);
相关文章推荐
- 垃圾的Android-ListView-setEmptyView
- Android ListView setEmptyView
- Android开发之ListView:setEmptyView的问题
- android笔记之ListView的setEmptyView方法
- Android listview的setemptyview
- Android开发之ListView的setEmptyView()
- 【android】从源码上分析ListView/GridView调用setEmptyView不起作用的原因及解决办法
- Android ListView之setEmptyView的问题
- Android ListView之setEmptyView正确使用方法
- Android ListView.setEmptyView
- 【android】从源码上分析ListView/GridView调用setEmptyView不起作用的原因及解决办法
- Android ListView的setEmptyView方法的使用
- android listview setEmptyview(设置listview是空值需要显示的布局)
- Android ListView setEmptyView
- Android ListView setEmptyView
- Android 解决SwipeRefreshLayout和listview的setEmptyView的冲突 listview和scrollview的冲突
- Android ListView setEmptyView
- android中listview setEmptyView()的使用
- 解决ListView的 setEmptyView无效的问题
- 关于Listview的ListView.setEmptyView后下拉刷新闪现的问题