FragMent,ViewPager 实现每个页面都请求网络。

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 。也就是向后加载两页。
可以根据自己的需求调整不同的缓存页面。

下载地址

[ 点击跳转下载 ]

你可能感兴趣的:(viewpager,Fragment)