如何实现可动态调整隐藏header的listview

 我来答
greystar_cn
2018-07-26 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
需求:根据某种需要,可能需要动态调整listview的页眉页脚,譬如将header作为显示板使用。

点:listView.addHeaderView()方法必须在setAdapter()方法前调用,否则就会抛异常。至于为什么会抛异常,查看下
ListView的源代码即可发现。因此,在设置HeaderView之后又想将headerView移除或者隐藏,则需要绕很大的弯子:将
adapter保存起来-移除headerView-(或者更换headerview)-再将adapter设置上去。隐藏headerview思路:使
用View.GONE属性进行隐藏尝试1.itemView结构如下: <LinearLayout
android:id="@+id/item_root" android:layout_width="fill_parent"
android:layout_height="50dip" android:orientation="vertical"
><TextView android:id="@+id/tv_1" /><TextView
android:id="@+id/tv_2" /></LinearLayout >此时,有如下逻辑: ListView
listView = xxxx; listView.addHearderView(item_root);
listView.setAdapter(adapter); adapter.add(xxxxx);添加数据
item_root.setVisibility(View.GONE);按道理,最后一句应该可以起到隐藏headerView的目的,但实际效果(魅
族MX上测试发现),item_root的地方的确没有控件了,但item_root占用的50dip高度还在,即原来headerView的地方变成了
一片空白区域!和View.INVISIBILE效果一样了,汗死! 继续尝试如下,修改itemView的结构: <LinearLayout
android:id="@+id/item_root" android:layout_width="fill_parent"
android:layout_height="50dip" android:orientation="vertical" >
<LinearLayout android:id="@+id/item_container" <TextView
android:id="@+id/tv_1" /><TextView android:id="@+id/tv_2" />
</LinearLayout></LinearLayout >
此结构较之前的结构增加了一个多余的Layout(item_container)来囊括item内部控件。此时,如果在item_container
.setVisibility(View.GONE)则可以完美实现隐藏HeaderView的目的!结论:View.GONE属性貌似不作用在根
Layout上。新的问题:如果在item_root上使用了Shape背景,且此背景存在MinSize,那么此方法又失效了。。。规避处理:如果的确
必须要在HeaderView上添加背景background的话,那么请将background设置在item_container上吧,不要设置在
item_root上,如此就可以规避新的问题了。
司马刀剑
高粉答主

2017-09-30 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7441万
展开全部
ListView listView = xxxx;
listView.addHearderView(item_root);
listView.setAdapter(adapter);
adapter.add(xxxxx);添加数据
item_root.setVisibility(View.GONE);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式