原 [Android]LIstView的HeaderView
2015-02-13 11:54
288 查看
目录[-]
(1)添加HeaderView之后尺寸布局被忽略。(2)添加HeaderView之后导致OnItemClickListener的position移位
(3)LayoutInflater的infalte()
(1)添加HeaderView之后尺寸布局被忽略。
通常添加头部的方法是?
lif.inflate(R.layout.header, null)丢失了XML布局中根View的LayoutParam,应该使用的是
?
(2)添加HeaderView之后导致OnItemClickListener的position移位
OnItemClickListener接口的方法:?
几个解决办法:
1,手动计算真实的position位置:
?
?
当有headerView被添加时,实际传递给ListView的adapter被包装,parent.getAdapter()返回真实被ListView使用的Adapter(HeaderViewListAdapter),HeaderViewListAdapter的getItem(int)方法处理了position的问题。
(3)LayoutInflater的infalte()
用来呼应第一个问题。LayoutInflater的作用很简单,就是将XML的布局文件“翻译”成相应的View对象,而且出于性能的考虑,LayoutInflater只能处理编译后的XML文件,而不能处理通常明文编码的XML文件。最常用的一个方法:
?
resource是布局文件ID
root是父ViewGroup对象,
attachToRoot是是否将“翻译”出来的View添加到上面的root中
root和attachToRoot是共同作用的:
1,有root,同时attachToRoot为false,那么inflate()返回的就是“翻译”得到的view
2,有root,同时attachToRoot为true,那么inflate()就是将“翻译”得到的view添加到root后,然后返回root
3,无root,同时attachToRoot为false,那么inflate()返回的就是“翻译”得到的view。
4,无root,同时attachToRoot为true,报错。
另外,root还有一个重要的作用就是为“翻译”得到的view添加合适的LayoutParam,并且如果并不想将得到的View添加到root的话,传递何种root是并没有要求的,比如:
?
相关文章推荐
- android listview addHeaderView和addFooterView的注意事项【转】
- android listview addHeaderView和addFooterView的注意事项
- android listview footerview和headerview 问题调查
- Android Listview多次调用addHeaderView和addFooterView
- android listview addHeaderView和addFooterView的注意事项
- Android ListView分页时出现java.lang.ClassCastException: android.widget.HeaderViewListAdapter异常
- (转)android listview addHeaderView和addFooterView的注意事项
- Android修炼之道—ListView的HeaderView的问题
- Android ListView分页时出现java.lang.ClassCastException: android.widget.HeaderViewListA
- android listview addHeaderView入参不同的区别
- android listview addHeaderView和addFooterView的注意事项【转】
- Android开发_viewpager作为header加入到listview
- [android] 关于ListView的 addHeaderView(...) 方法
- android ListView隐藏FooterView(headerView)
- android listview addHeaderView和addFooterView的注意事项
- android listview addHeaderView和addFooterView的注意事项
- android listview addHeaderView和addFooterView的注意事项
- android中ListView的HeaderView的Padding详解
- android listview addHeaderView和addFooterView的注意事项【转】
- Android中ListView有HeaderView且overScrollMode为never,在快速滑动时,有些item没有显示