在做一个ViewPage+Frament 滑动数效果,当滑动到每一页时加载哪一页的数据,但是ViewPage会预加载下一也数据,这个问题之前做项目是一直未解决,今天找到一个方法一下子就解决的这个问题,Frament里面有一个setUserVisibleHint方法,setUserVisibleHint每次fragment显示与隐藏都会调用,下面说一下这个方法的使用 @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { //可见时加载数据相当于Fragment的onResume }else{ //不可见是不加载数据 } }
由于setUserVisibleHint优于onCreate调用,所以当onCreate调用完毕setUserVisibleHint就不会触发,使用这个方法可能会有一些问题,因为这个方法是在onCreate方法之后运行的,一进来有时候可能看不到第一页的数据,这个时候 你可以在onCreate 或者是onCreateView里面进行判断 if (getUserVisibleHint()) { //加载数据相当于Fragment的onPause } 这样就能看到第一页的数据了!
|