在ListView中getView返回的position是包含HeaderView 和 FooterView。并不是从除去HeaderView以外第一个Item 为Position = 0的所以使用这个位置的时候都需要考虑到造成偏移,FooterView存在同样的问题。
什么情况下会出现问题,即位置偏移问题?
可以分析下HeaderViewListAdapter,从中查看下原因
getCount
getItem
getItemId
getView
getItemViewType
其中getCount返回的是包含HeaderView和FooterView。
其他几个方法中的position都排除了HeaderView和FooterView。
除去这几个方法,其他跟位置有关的方法都会直接包含HeaderView和FooterView
例如:getFirstVisible() getLastVisible没有被覆写,所以这两个方法是从HeaderView第一个view算作position = 0
参考资料:
Header, Footer位置偏移