android ListView 设置header和footer的问题

来源:互联网 发布:linux 配置环境变量 编辑:程序博客网 时间:2024/06/10 03:42

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

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

private ListView listView = new ListView(context);private TextView footer = new TextView(context);

然后直接
listView.addFooterView(footer);footer.setVisibility(View.GONE);

这样的话,是不行的。需要
LinearLayout footerParent = newLinearLayout(context);footerParent.addView(footer);listView.addFooterView(footerParent);footer.setVisibility(View.GONE);
这样就可以达到真正想要的效果了。

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


参考http://blog.sina.com.cn/s/blog_70b9730f01014sgm.html

0 0