ListView中动态显示和隐藏Header&Footer

原创 2016年08月29日 10:33:00

ListView的模板写法

ListView模板写法的完整代码:

以后每写一个ListView,就这么做:直接导入ViewHolder.javaListViewAdapter,然后写一个自定义adapter继承自ListViewAdapter就行了。


ListView中动态显示和隐藏Header&Footer

如果需要动态的显示和隐藏footer的话,按照惯例,误以为直接通过setVisibility中的View.GONE就可以实现。但是在实际使用中发现并不是这样的。

例如,先加载footer布局:

private View mFooter;

mFooter = LayoutInflater.from(this).inflate(R.layout.footer, null);  //加载footer的布局
mListView.addFooterView(mFooter);

如果想动态隐藏这个footer,惯性思维是直接设置footer为gone:(其实这样做是不对的)

mFooter.setVisibility(View.GONE);  //隐藏footer

实际上,直接设置GONE后,虽然元素是隐藏了,但是还是占用着那个区域,此时和View.INVISIBILE效果一样。

footer的正确使用方法如下:

1、方法一:

(1)布局文件:在footer布局文件的最外层再套一层LinearLayout/RelativeLayout,我们称为footerParent。

layout_footer_listview.xml:(完整版代码)

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mFooterparent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FFFFFF"
    android:gravity="center"
    android:orientation="vertical"
    >

    <LinearLayout
        android:id="@+id/mFooter"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:text="查看更多"
            android:textColor="#ff0000"
            android:textSize="20sp"/>
    </LinearLayout>
</LinearLayout>

(2)加载footer和footerParent的布局:

private View mFooter; //footer
private View mFooterParent;  //footer的最外面再套一层LinearLayout

mFooterParent = LayoutInflater.from(getActivity()).inflate(R.layout.footerparent_listview, null);//加载footerParent布局
mFooter = mFooterParent.findViewById(R.id.footer);
listView.addFooterView(mFooterParent);  //把footerParent放到ListView当中

mFooterParent.setOnClickListener(MainActivity.this); //绑定监听事件,点击查看全部列表

(3)设置footer为gone:(不是设置footerParent为gone)

mFooter.setVisibility(View.GONE);


2、方法二:或者直接在代码中为footer添加footerParent也可以,如下:

private View mFooter; //footer
mFooter = LayoutInflater.from(getActivity()).inflate(R.layout.footer_listview, null);//加载footer布局

LinearLayout mFooterParent = new LinearLayout(context);  
mFooterParent.addView(mFooter);//在footer的最外面再套一层LinearLayout(即footerParent)
listView.addFooterView(mFooterParent);//把footerParent放到ListView当中

当需要隐藏footer的时候,设置footer为gone:(不是设置footerParent为gone)

mFooter.setVisibility(View.GONE);
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android ListView中动态显示和隐藏Header&Footer的方法(转)

原文链接:http://www.cnblogs.com/smyhvae/archive/2016/08/26/5810471.html ListView的模板写法 ListView...

android 动态显示隐藏listview的headerview和headerview里的控件

需求:根据某种需要,可能需要动态调整listview的页眉页脚,譬如将header作为显示板使用。 难点:listView.addHeaderView()方法必须在setAdapter()方法前调用...

ListView如何动态显示与隐藏headerview,footerview

前言很多情况我们需要用到ListView的addHeaderView(View v)以及addFooterView(View v)以满足我们的需求。比如我们项目中的情况:ListView上面需要显示一...

ListView中headerview的动态显示和隐藏的问题

ListView中headerview的动态显示和隐藏的问题Android1.动态设置headerview的方法动态设置headerview有两个思路。方法一将header的布局写在list item...

android 动态显示隐藏listview的headerview和headerview里的控件

http://blog.csdn.net/ethan_xue/article/details/9852209 需求:根据某种需要,可能需要动态调整listview的页眉页脚,譬如将heade...
  • kouwoo
  • kouwoo
  • 2014-10-21 17:41
  • 1224

android 动态显示隐藏listview的headerview和headerview里的控件

需求:根据某种需要,可能需要动态调整listview的页眉页脚,譬如将header作为显示板使用。 难点:listView.addHeaderView()方法必须在setAdapter()方法前调用,...

Android实战简易教程-第五十一枪(ListView实现子控件的动态显示和隐藏、checkbox全选和反选)

前段时间写过一篇文章:Android实战简易教程-第四十七枪(ListView多选-实现点餐系统)有的同学留言建议,可不可以动态控制checkbox的显示和全选反选功能,我研究了一下,发现实现也比较容...

listview动态显示元素

  • 2013-05-22 23:14
  • 164KB
  • 下载

动态显示listview的数据,同步机制

不知道怎么上传动图,下面这张是在动态跳出数据的时候截出来的图。下面记录一下,怎么做出灵活的动态显示listview数据的效果。 这是在动态显示的过程中截的一张效果图,接下来记录一下如何做出动态显...

安卓学习之使用listview设置adapter时,解决动态显示图片的问题

安卓学习之使用listview设置adapter时,解决动态显示图片的问题
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)