关于pullToRefresh使用时的问题总结:

宇文念
2023-12-01
    相信很多新手在使用pullToRefresh的时候都有一个困惑,就是检查了很多遍,代码没有任何问题,可数据就是显示不出来。这时候你就会改成listView,然后数据正常展示出来了。这就证明你的代码没有任何问题。可是问题出在哪里呢?抓耳挠腮,百思不得其解。
    下面是遇到的问题描述:
  在fragment中使用的时候数据展示不出来,如果设置上setEmptyView的话数据就能展示出来。这时候就出现了第二个问题,这个emptyView有多高他就只在这个高度的范围内显示。这个高度肯定不会是全屏的,所以就导致了数据不能全屏显示。就算将emptyview的高度设置为填充父容器,仍然没作用,他只认这个view的实际高度。这个时候你可能会想到将emptyView的高度写成一个固定的很大的高度。这样做还真的管用。可是你是否考虑过适配的问题,你这个空布局在不同的手机上如何显示呢。这样没有真正的解决问题,反而又多了一个问题。下面给出解决方案!

    遇到这样的情况首先去检查你的布局是相对布局还是线性布局,我想遇到这种情况的大多数都是使用的线性布局。原因有二,第一:fragment默认的布局就是线性的,你可能不会去修改;第二:线性布局相对简单,你也懒得去使用相对布局。这就是问题的关键。
    这个控件是自定义的,就算你设置高度是填充父容器,那么他也撑不开这个布局。所以就显示不出来。当你设置了emptyView的时候是这个emptyView撑开了这个布局,所以这个布局有多大就会显示多大的区域。说到这里大家该明白了吧,是由于没有撑开布局导致的,那么我们将布局撑开不就解决问题了嘛。所以就是将你的线性布局改成相对布局,高度依然填充父容器就OK了。这时候不管你设置不设置emptyView都是没有问题的。

    在这里顺便告诉大家,线性布局是很简单,但不是我们做项目时候的首选。尽量的多多使用相对布局。

    以上仅仅是个人理解,如果有误希望大家多多指点。
 类似资料: