GetView循环调用问题
今天开发的时候遇到了一个非常奇葩的问题。
整体的布局,简单点来说就是 ScrollView内部添加了一个ViewPager和ListView。
ViewPager和ListView都是自己自定义的,为了避免冲突。
现象是这样的,在5.0之前的系统中运行自己的项目是一点问题都没有的,但是到了5.0之后的系统,就会出现Bug。
在切换几个页面之后,整个页面就无法滚动,任意滑动手指,都无法正常滚动。
开始我以为是因为自定义的布局写的有问题,但是测试了几个5.0的手机发现问题依旧。初步排除这样的原因造成。
由于Imageloader的Log输出过于多,所以先得关掉它的Log信息。
L.writeLogs(flase);
很容易看到logcat输入
requestLayout() improperly called by android.widget.TextView{...} during layout: running second layout pass.
一直刷新Logcat。
查了下SOF,发现大多数的人都是反馈的是Adapter中GetView()方法一直在循环调用
有一个人的评论,我以为是Android版本的问题
This bug must have been introduced in one of the KitKat (4.4.x) updates, as I've not seen it with the initial KitKat (4.4.0) release. Apart from the ugly console spamming with the debug message from above, there seem to be no other impacts (maybe performance in some cases, which I haven't tested).
在google code中有一个Issue,解决完问题后才发现一个很搞笑的评论。
Damn Fast Scroller is the bane of Android since it exists...
网友评论