ListView添加删除FooterView

在开发项目中,想要使异步或分页加载更好看一些,可以在ListView加上HeaderView或者footerView。

1、生成一个FooterView

在例子中,只是实现了一个进度条,右侧一个提示文本,所以可以简单写一个布局,然后通过LayoutInflater生成一个View。

2、在ListView.setAdapter()方法之前调用ListView.addFooterView( View )。

原因:

通过查看ListView的setAdapter方法,可以看到:

[java] view
plain
copy

  1. public void setAdapter(ListAdapter adapter) {
  2. ........
  3. if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) {
  4. mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos, adapter);
  5. } else {
  6. mAdapter = adapter;
  7. }
  8. ........
  9. }

mHeaderViewInfos和mFooterViewInfos都是ArrayList,代表着HeaderView和FooterView的对象的数量和信息,ListView先判断mHeaderViewInfos和mFooterViewInfos的大小是否都大于0,如果大于0,说明存在HeaderView或FooterView,则会生成一个HeaderViewListAdapter对象,作为ListView的内部adapter,否则,则会直接把传入的adapter作为内部的adapter。

在删除FooterView时,会先检查mFooterViewInfos的大小,如果大于0,说明存在FooterView,则会返回继续处理的结果,否则直接返回false。

通过查看removeFooterView方法的注释,可以看到:

[java] view
plain
copy

  1. /**
  2. * Removes a previously-added footer view.
  3. *
  4. * @param v The view to remove
  5. * @return
  6. * true if the view was removed, false if the view was not a footer view
  7. */

如果返回true,则说明成功移除了一个FooterView

如果返回false,则说明要移除的不是一个FooterView,则会报出异常,程序强制关闭。

3、如果自己不好判断到底存不存在FooterView,我的笨方法是加一个全局的Boolean变量,进行对FooterView存在的标记。

在添加FooterView之前判断是否存在,如果不存在则添加一个FooterView,然后马上将变量置成true,代表存在。

删除时也是一样,先判断是否有FooterView,如果存在则删除FooterView,然后马上将变量置成false,代表不存在FooterView了。

时间: 2024-10-12 06:54:11

ListView添加删除FooterView的相关文章

给Android ListView添加删除item动画

给Android ListView添加删除item动画 给listview删除一个item的时候加上一个折叠动画,感觉效果会好一点. 步骤是当删除一个view,先用动画把view的高度改变,看上去就是折叠的效果.当动画完成的时候,再真正把item移除. private void deletePattern(final View view, final int position) { Animation.AnimationListener al = new Animation.AnimationL

自定义listView添加滑动删除功能

今天研究了一下android里面的手势,结合昨天学习的自定义View,做了一个自定义的listview,继承自listView,添加了条目的滑动手势操作,滑动后出现一个删除按钮,点击删除按钮,触发一个删除的事件,在事件中进行删除当选行的元素,刷新listview. 一共分为以下几步进行: 1.新建一个按钮的布局文件,用来作为动态添加的按钮:layout_button.xml <?xml version="1.0" encoding="utf-8"?> &

精通RecyclerView:打造ListView、GridView、瀑布流;学会添加分割线、 添加删除动画 、Item点击事件

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53126706 本文出自[DylanAndroid的博客] 精通RecyclerView:打造ListView.GridView.瀑布流:学会添加分割线. 添加删除动画 .Item点击事件 在上一篇Android用RecyclerView练手仿美团分类界面写了RecyclerView的基本用法, 今天想想,在这里重新学习一下RecyclerView的完整用法.包括如何打造一个普

【android自定义控件】android ListView添加侧滑删除

为ListView添加炫酷的Item中带侧滑的删除,原理是利用item布局中的padding(Left和Right)属性为负值,来把删除的按钮隐藏在屏幕外.然后通过自定义ListView重写其中的OnTouchEvent通过手指坐标点的计算来处理事件,实现itemView的滚动,达到滑动出现删除菜单,本例中仅实现右向左滑出现删除按钮,大家可以根据自己需求,参照自定义ListView中事件处理做出左侧滑,右侧滑出现菜单,当然不仅仅局限于删除.更多灵活用法期待发觉. 首先上自定义的ListSlide

双链集合添加删除算法

双链集合添加删除算法: package com.linkes; public class MyLinkeList { /** * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com * @author 小沫 */ /** * 链表集合他是于双链条式进行引用上下家,好处可以知道上家和下家是谁 * 利于修改,可以从首部开始删除数据也可以从尾部删除. * 即可从中间指定位置删除. */ private Object[] shou; private Object[] wei; // 默

如何恢复,迁移,添加, 删除 Voting Disks

如何恢复,迁移,添加, 删除 Voting Disks恢复流程 在11gR2 之前,我们可以直接直接使用dd命令对voting disk进行备份.DD示例 备份votedisk盘:[[email protected] bin]# dd if=/dev/raw/raw2 of=/home/oracle/voting_disk.bak 恢复votedisk盘:[[email protected] bin]# dd if=/home/oracle/voting_disk.bak of=/dev/raw

Linux/Ubuntu中添加删除新用户

操作环境:Ubuntu Server 14.04,系统上仅有一个用户root 1. adduser 命令添加新用户 #adduser username 注意adduser与useradd命令的区别,useradd是Linux系统中二进制可执行程序工具,adduser是封装了useradd之后的可执行脚本.因此adduser比useradd功能更加强大和智能,adduser在创建用户同时进行创建用户主目录等其他相关工作. 2.赋予新建用户管理员权限 只需要将用户加入sudo用户组中就可以赋予用户管

JTree 添加 , 删除, 修改

package com.swing.demo; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.CellEdi

class 样式的添加,删除,切换

<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="script/jquery-1.11.0.min.js" type="text/javascript"></script> <style type="text/css"&g