关于ListView加入HeaderView之后,点击条目时获得position参数移位的BUG修正
来源:互联网 发布:头条号视频剪辑软件 编辑:程序博客网 时间:2024/05/29 03:19
今天遇到一个问题,在ListView的时候,要在首部加一个轮播图组件,调用的是ListView的addHeaderView(View v, Object data, boolean isSelectable)方法,这个方法可以把一个view放置到Listview的顶部显示,也可以多次调用,使得多个view按照添加的顺序,依次排列在ListView的顶部显示。
这样做了之后是显示是没问题的,但是遇到一个问题就是在ListView的Adapter的构造方法中,要添加ListView的条目点击事件:mListView.setOnItemClickListener(this);
然后在Adapter里面实现onItemClick(AdapterView<?> parent, View view, int position,long id)方法,在通过position取数据的时候发现一个问题,就是点击的条目错位了,点击一个条目,结果响应事件变成了下一个条目对应的事件。
经过探查之后发现,本来ListView条目的position是从0开始计算的:0,1,2...这样,但是添加了一个Header之后,position变成了从1开始,于是需要手动修正一下这个postion的值。
好在Android中有提供一个对应的API来得到HeaderView的数量,那就是ListView中的一个方法:getHeaderViewsCount(),这个方法可以得到这个ListView添加了多少个HeaderView,然后我们需要做的只是在使用position之前,修正一下:
// TODO 修正有Header的ListView的position的BUGint headerViewsCount = listView.getHeaderViewsCount();//得到header的总数量//得到新的修正后的positionint newPosition = position - headerViewsCount;
ok,问题解决。
- 关于ListView加入HeaderView之后,点击条目时获得position参数移位的BUG修正
- 关于ListView加入HeaderView之后,点击条目时获得position参数移位的BUG修正
- 如何让listView加入的HeaderView不可点击
- 如何让listView加入的HeaderView不可点击
- 如何让listView加入的HeaderView不可点击(转)
- 关于ListView 条目点击混乱的问题
- 关于ListView的HeaderView
- 关于ListView的HeaderView
- listView中添加了headerView时,使用position的注意事项
- android如何让listView加入的HeaderView或FooterView不可点击
- NavigationView 中 获得headerView 的点击事件
- 关于ListView中点击条目不生效的解决办法
- listview点击条目进行跳转,把position和具体的实体进行对应
- listView点击条目跳转并带参数
- 使ListView的headerView,footerView不可点击
- 修正IE6不支持position:fixed的bug
- 修正IE6不支持position:fixed的bug
- 修正IE6不支持position:fixed的bug
- [Unity实战]剧情对话(一)
- 大数据时代需要转变的思维
- VS2012 连接MySQl数据库 小测试出的问题
- Android高效加载大图、多图解决方案,有效避免程序OOM
- IDEA快捷键使用技巧整理
- 关于ListView加入HeaderView之后,点击条目时获得position参数移位的BUG修正
- hadoop权威指南中的ncdc数据下载地址及命令
- [LeetCode][Database]Employees Earning More Than Their Managers
- 第五周项目四 静态成员应用
- UITabBarController的使用
- javascript读取本地文件
- page指令属性
- 快速排序QuickSort
- 【数据结构】图的遍历方法 深度优先遍历和广度优先遍历