废话不多说,说多了都是眼泪。
先贴bug再说。
bug说明:这个bug,让我欲罢不能。本来空态页面都已经实现了,我们这边自测都是杠杠的。但到了测试手里。。。原因是他们手机屏幕较短。。。。没办法,出现了就得解决这个问题。
追寻了老久,终于让我发现问题之所在。原来是PullUpToRefreshListView的原因(自己出了问题,就要懂得无限帅锅。嘿嘿)。这里的空态页面,是在整PullUpToRefreshListView的头部里面动态加了一个view,即使用schoolListview.mRefreshableView.addFooterView(emptyView)。问题来了,当高度不够,list会不会自动向下撑那呢。答案是不会,就出现了上面的问题。究其原因,PullUpToRefreshListView是继承自Linearlayout的,而Linearlayout本身就不能自动撑,即高度不够可以向下滑。
解决办法:
第一想法,当然是看能不能借鉴Linearlayout。毕竟可以实现的话,代码不会改很多。很悲催的是Linearlayout的滚动是通过外面套一层srollview。这个也只是在这里想想。因为使用了这个,肯定会和下面的滚动事件其冲突。想到要处理这个。。。头都大了(这个PullUpToRefreshListView由于界面原因,还加了其他东西,像帧布局。唉,担心改了在于他的事件冲突就更得不尝失了)
后来,关注到有数据时的Item是可以自己撑开的。所以啊,下一波的方向就在这里。
功夫不负苦心人,在adpter里的getView加入了判断,瞬间搞定。让我力马全身舒畅。
可bug到这里远远没完。
引出新bug:1.空态页面下拉刷新时,一直显示加载;2.在空态页面,点击上面按钮,再次加载,程序有时就蹦了。
看到这。。。什么感觉也就不具体描述了。
对于问题1加schoolListview.onRefreshComplete();?在哪里呢,在下拉刷新位置和获取数据位置,都是不起作用的。没法了。。。突然,看到上拉的处理。没错,上拉就是加载一会就没了。所以啊,直接copy一下。唯一感觉不妥的地方是,上拉建立了一次网络请求,在空态页这里就不需要这个了,这里浪费了资源,感觉蛮对不起机子的。这里估计是在上拉处理中对显示进行了控制,但具体,还得后续看看。
对于问题2,想了一下。是因为Adpter里面缓存的问题。空态页的View和数据也View,布局肯定不同。这里我对view进行了一次判断,就解决了这个问题。
看到是不是觉得很爽,一点点了。
但bug远远没有终结,还是出现了新的问题。再每次点击后和加载数据显示的间隔了,总会看到上一次数据的部分(上次是第一条,这次是最后一条,搞不懂)。