设备: Nexus 5X(仿真器和真实设备)
Android操作系统版本: API 24(较旧的API工作正常)
我做了什么: 我重写ArrayAdapter getView()方法直接返回List。 (我是故意这样做的。在实际情况下,会返回不同设计的视图) 当我运行应用程序时,它首先工作正常。 向下滚动到底部并返回到顶部后,无法点击某些项目。(下面有一个示例项目)
我的期望: 无论我如何滚动,我都希望每一行都能被点击。
我调查的内容: 我重写View的方法来打印onAttachedToWindow / onDetachedFromWindow的日志。我有以下日志。
//当我第一次滚动到底部时,似乎很好。
0 onAttachedToWindow
1 onAttachedToWindow
2 onAttachedToWindow
3 onAttachedToWindow
4 onAttachedToWindow
5 onAttachedToWindow
0 onDetachedFromWindow
6 onAttachedToWindow
1 onDetachedFromWindow
7 onAttachedToWindow
2 onDetachedFromWindow
8 onAttachedToWindow
3 onDetachedFromWindow
9 onAttachedToWindow
4 onDetachedFromWindow
4 onAttachedToWindow
//当我滚动回到顶部时,似乎出现了问题。
9 onDetachedFromWindow
3 onAttachedToWindow
3 onDetachedFromWindow
8 onDetachedFromWindow
2 onAttachedToWindow
2 onDetachedFromWindow
7 onDetachedFromWindow
1 onAttachedToWindow
1 onDetachedFromWindow
6 onDetachedFromWindow
0 onAttachedToWindow
0 onDetachedFromWindow
5 onDetachedFromWindow
//项目3,2,1,0在附加后分离,即使它们仍然在屏幕上。
对我来说,就像#DetachedFromWindow"被称为有线。 我使用过" Android设备监视器"采取视图层次结构捕获,我发现在视图层次结构中缺少无法点击的项目。我想知道在滚动期间是否意外地分离了这些项目。
如果您知道问题出在哪里,请告诉我。
示例项目: https://drive.google.com/file/d/0BzmsPd8_SvZ6SVJnZHMzUmdjMHc/view?usp=sharing