解决Android中GridView、ListView的getChildAt方法返回null的问题
来源:互联网 发布:淘宝商城品牌故事范文 编辑:程序博客网 时间:2024/05/22 04:46
转载自:http://xie2010.blog.163.com/blog/static/211317365201402395944633/
今天在写程序时,发现一个奇怪的问题:在GridView没有滚动的时候,用getChildAt方法返回的值是正确的;但是只要我一滚动它,用getChildAt方法返回的值就为null。
去网上搜了一下,很多都说刚刚setAdapter后马上getChildAt返回子View,UI还没更新完,要用handler.postDelayed方法延迟一下。但是我试了一下发现还是返回null,后面在网上终于找到了答案,其实是对getChildAt这个方法理解错了。
一开始以为传入一个绝对的position(就是adapter的第几个item)就可以返回该position的View。但是GridView和ListView对View采用回收机制,简单的说明一下就是:如果屏幕最多可以显示n个子View,那么内存中其实只有n个View,当我们在滚动时,第(n+1)个View复用第1个View,依次类推。
所以在GridView和ListView中,getChildAt ( int position ) 方法中position指的是当前可见区域的第几个元素。
//如果你要获得GridView的第n个View,那么position就是n减去第一个可见View的位置
View view = getChildAt ( n - getFirstVisiblePosition() ) ;
0 0
- 解决Android中GridView、ListView的getChildAt方法返回null的问题
- Android中GridView、ListView的getChildAt方法返回null
- 【转】Android中GridView、ListView的getChildAt方法返回null
- Android中GridView、ListView的getChildAt方法返回null
- Android中GridView、ListView 的 getChildAt() 方法返回null 解决方案
- Android ListView、GridView中getChildAt返回值不正确的问题
- Android 中Listview方法getChildAt()返回为空的问题
- 解决ListView中getChildAt(int index)获取item的view为null的问题
- Android中ListView和GridView通过getChildAt方法得到相应的Item并刷新
- ListView自定义后,在onItemClick中getChildAt返回null问题
- ListView自定义后,在onItemClick中getChildAt返回null问题
- ListView自定义后,在onItemClick中getChildAt返回null问题
- 解决OnscrollListener中Listview.getChildAt()为null问题
- listview的getChildAt方法
- 关于Listview的getChildAt方法返回空值的解决办法
- 关于Listview的getChildAt方法
- ListView的getChildAt(i)方法
- 【android】ListView中getChildAt(index)的真正含义
- 数据库分库分表sharding1
- 测试的框架和语言选择
- 驾驶技能考试 科目三
- android支付宝客户端html5网页偶尔无法自动关闭问题
- iOS中的RunLoop 和 android 中的Looper
- 解决Android中GridView、ListView的getChildAt方法返回null的问题
- Caffe学习总结(二)——caffe环境搭建
- C#控制台基础 改变string中的一个元素,string像一个只读的char 数组
- 统计学习理论
- win7桌面坐标突然变了
- 局部变量Executors创建线程池后一定要关闭
- 正则区分大小写的用法: (?i), (?-i), (?i:X), (?-i:X)
- 【NOIP2011模拟9.20】统计方案
- 快速排序