关于GridView和ListView的getChildAt返回null的问题的解析

遇到一个问题,就是在GridView不滚动的时候,getChildAt返回的值都是正确的,但是一滚动就会出现错位或者返回null。

后来找了很多资料,发现GridView和ListVIew采用回收机制,简单地说:如果屏幕最多可以显示n个子View,那么内存中其实就只有这n个子View。当滚动了之后,重新展现在眼前的n个View复用了之前的n个VIew。

所以在GridView和ListView中,getChildAt(int position)方法中的position指的是当前可见的第几个元素。

如果要获得GridVIew中的第n个View,那么position就是n-第一个可见View的位置

View view=gridView.getChildAt(n-gridVIew.getFirstVisiblePosition());```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,099评论 25 709
  • 一、Android开发初体验 二、Android与MVC设计模式模型对象存储着应用的数据和业务逻辑。模型类通常用来...
    为梦想战斗阅读 4,581评论 0 3
  • 初一的下午去了亲戚,然后遇见了他们的干女儿也来拜年。 所以偶然之下今天也听到了一个故事,我无意想暴露别人的隐私,不...
    吉吉kiki阅读 5,664评论 0 1
  • 相片中拉小提琴的女子 站立在空旷的荒原上 枯草匍匐在她脚下 风不停的吹过 这时她拉响一支曲子 乐音扬起如她飘飞的发...
    林嘉梓阅读 2,744评论 13 52
  • 文/靖宁 上周在看《80年代访谈录》间隙偶然翻到黄仁宇先生的《万历十五年》,便借来翻读。 一部严肃的历史学著作,写...
    靖宁阅读 2,383评论 1 3

友情链接更多精彩内容