android ListView 动态添加header和footer

http://my.oschina.net/mugg/blog/157866


在使用ListView的header和footer的过程中,如果需要动态的显示和隐藏header和footer的话,以前以为直接setVisibility中的View.GONE就可以。但是在实际使用中发现并不是这样的。直接设置GONE后,虽然元素是隐藏了,但是还是占用着那个区域。感觉就像View.INVISIBILE一样的效果了。后来在网上查找后发现。只要给footer再加上一个layout或者是父级的view就可以了。

例如:(示例代码,header同理)

1 private ListView listView = new ListView(context);
2  
3 private TextView footer = new TextView(context);

然后直接

1 listView.addFooterView(footer);
2  
3 footer.setVisibility(View.GONE);

这样的话,是不行的。需要

1 LinearLayout footerParent = new LinearLayout(context);
2  
3 footerParent.addView(footer);
4  
5 listView.addFooterView(footerParent);
6  
7 footer.setVisibility(View.GONE);

这样就可以达到真正想要的效果了。

在知道这个效果之前,都是用remove和add方法,比较郁闷。这样的方式感觉是很迂回的,而且还得加多一个boolean的变量来判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值