FragMent,ViewPager 实现每个页面都请求网络。
- 配置Fragment集合以及Adapter
- 利用OnPageChangeListener 实现每次变换frag都请求数据。
先上效果图 点击第二个访问数据 点击第一个仍然从新请求数据,
核心的代码
@Override
public void onResume() {
super.onResume();
showToast();
}
public void showToast() {
final ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
dialog.cancel();
}
}, 3000);
}
在每个fragment的onresume 方法里写入请求数据,然后看Main 里的用法。
OnPageChangeListener onPageChange = new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
((Fragment)(frags[arg0])).onResume();
break;
case 1:
((Fragment)(frags[arg0])).onResume();
break;
case 2:
((Fragment)(frags[arg0])).onResume();
break;
default:
break;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
};
通过调用每个Fragment的onresume 方法来实现每次的数据请求。
可能会有一些问题 毕竟没有实践过 我们的APP没有这种需求 也就没有深入。
注意
ViewPager 没有设置setOffscreenPageLimit 默认 是1 。也就是向后加载两页。
可以根据自己的需求调整不同的缓存页面。