ListView视图复用功能:
当listview的内容超过显示的大小,滑动列表时,item的视图不变只是改变其中存放的子view,并且不同子view只创建一次,这样就不会每次都加载新的视图,优化性能。
而这样就会出现一个问题,如果我们想监听每一个子view,当子view不在item的显示范围内时,监听就会失败。如果监听item的视图又会导致监听的视图位置中的子view会随滑动而改变。
解决办法就是把listview的大小直接定为显示所有内容需要的大小。这样listview就会一次性加载所有的内容。
但是不知道怎么回事,这样设置之后listview竟然不能滑动了。可能是我测试的时候搞错了吧。
我的解决办法是直接把listview所在的最外层布局改为scrollview滚动,把宽度或者高度改为自适应大小。最好把listview放进一个线性布局中。
布局文件的样子:
《scrollview》
《LinearLayout》
《listview》