在PullUpToRefreshListView中加空态页面

废话不多说,说多了都是眼泪。

先贴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远远没有终结,还是出现了新的问题。再每次点击后和加载数据显示的间隔了,总会看到上一次数据的部分(上次是第一条,这次是最后一条,搞不懂)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值