Android ListView中HeaderView和FooterView隐藏的两种方法
来源:互联网 发布:asm算法 编辑:程序博客网 时间:2024/06/01 08:26
一、不使用布局文件。
btnMore = new Button(this);
btnMore.setText("查看更多");
listView.addFooterView(btnMore);//addFooterView要在setAdapter之前执行一次。
listView.setAdapter(listViewAdapter);
不想显示FooterView时,可以removeFooterView。为什么这里在setAdapter之前要addFooterView呢。看一下源码就明白了。
@Override
public void setAdapter(ListAdapter adapter) {
…………
if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) {
mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos, adapter);
} else {
mAdapter = adapter;
}
…………
}
可见,当ListView没有HeaderView或FooterView时,与ListView相关联的Adapter就是传递的参数Adapter,否则,就将原来的Adapter封装成HeaderViewListAdapter。
这种方法是通过频繁的增减ListView的页眉页脚来达到显示与消失的目的,容易对Adapter带来其他问题,操作前,可以先保存下Adapter。
二、使用布局文件。
定义一个布局:
<?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" >
<LinearLayout
android:id="@+id/layout_checkmore"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btn_checkmore"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
在程序中使用上述布局:
linear_footView = (LinearLayout) LayoutInflater.from(this).inflate(
R.layout.listview_footview_layout, null);
btnMore = (Button) linear_footView.findViewById(R.id.btn_checkmore);
listView.addFooterView(linear_footView);
listView.setAdapter(listViewAdapter);
然后通过btnMore.setVisibility(View.VISIBLE)和btnMore.setVisibility(View.GONE)来控制ListView页眉页脚的显示和隐藏。需要注意的是,布局中嵌套了一个LinearLayout,否则是没有作用的,就是要设置Button的根layout的Visibility属性。
- Android ListView中HeaderView和FooterView隐藏的两种方法
- android ListView隐藏FooterView(headerView)
- Android ListView隐藏FooterView(headerView)
- ListView的headerView和footerView
- Android ListView HeaderView和FooterView引出的Position问题
- LIstView的HeaderView, FooterView
- ListView的HeaderView与FooterView
- android ListView 添加 HeaderView 和 FooterView时 不可选择点击
- Android 去掉ListView的HeaderView、FooterView的Divider分割线
- Android开发 使ListView的HeaderView和FooterView不可选择点击
- Android 编程下 ListView 的 HeaderView 和 FooterView 不可选择点击
- ListView中headerview的动态显示和隐藏的问题
- 使ListView的headerView,footerView不可点击
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- 桥接模式
- Nodejs调用C++的要点
- SQL Server2005杂谈(3):四个排名函数(row_number、rank、dense_rank和ntile)的比较
- Project Euler 19
- Eclipse快速上手指南之使用JUnit
- Android ListView中HeaderView和FooterView隐藏的两种方法
- hdu piggy-bank 1114
- Android读写文件
- 润乾实现引入svg并显示在页面中
- ubuntu12.04安装qt4.7
- 各种版本的++、--原子操作
- VS2010包含库路径快捷修改方法
- flexAsynToken问题
- 李彦宏内部邮件:从PC到移动互联网需要狼性