本人现在做了个类型微信的,底部页签功能,用viewpager+fragment,但是每次切换的时候,都刷新了页面。这个要怎么实现,切换不要重新刷呢?
解决方案
10
addToBackStack(null)
5
优化你的FragmentPagerAdapter,重写destroyItem,在该方法里面不做任何操作,这样切换时就不会销毁你的视图,想要做刷新,本人去做控制,下拉之类的操作
10
fragmentmanager使用add添加tab页,然后设置viewpager的缓存数为你的tab页数就可以了,setOffscreenPageLimit()
5
ViewPager在每次切换的时候都会remove当前的view,然后add下一页的view,假如你设置了setOffscreenPageLimit(int size);
那么你在第一次打开的时候就会缓冲你设置的页数,但是这个在addView的时候你添加的view会做数据的填充。
例如你ViewPager里边放的是Fragment,那么你就要通过这个
/* @Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && !Utils.getLoginState()) {
mDialog.show();
}else if (isVisibleToUser && Utils.getLoginState() && !Utils.getMemberState()) {
mDialog.show();
}
}*/来进行判断能否要进行数据的刷新,你可以搜索下这个方法的使用。
那么你在第一次打开的时候就会缓冲你设置的页数,但是这个在addView的时候你添加的view会做数据的填充。
例如你ViewPager里边放的是Fragment,那么你就要通过这个
/* @Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && !Utils.getLoginState()) {
mDialog.show();
}else if (isVisibleToUser && Utils.getLoginState() && !Utils.getMemberState()) {
mDialog.show();
}
}*/来进行判断能否要进行数据的刷新,你可以搜索下这个方法的使用。