硅谷新闻2--禁止viewpager预加载

ContentFragment.java

class MyOnPageChangeListener implements ViewPager.OnPageChangeListener {
    .....
        /**
         * 当某个页面被选中的时候回调这个方法
         * @param position 被选中页面的位置
         */
        @Override
        public void onPageSelected(int position) {
//            BasePager basePager = basePagers.get(position);
            //调用被选中的页面的initData方法
            basePagers.get(position).initData();
        }
    .....
    }

ContentFragmentAdapter.java

@Override
    public Object instantiateItem(ViewGroup container, int position) {
        BasePager basePager = basePagers.get(position);//各个页面的实例
        View rootView = basePager.rootView;//各个子页面
        //调用各个页面的initData()
//            basePager.initData();//初始化数据
        container.addView(rootView);
        return rootView;
    }

  

  

时间: 2024-10-04 02:38:26

硅谷新闻2--禁止viewpager预加载的相关文章

关于禁止ViewPager预加载问题【转】

转自:http://blog.csdn.net/qq_21898059/article/details/51453938#comments 我最近上班又遇到一个小难题了,就是如题所述:ViewPager预加载的问题.相信用过ViewPager的人大抵都有遇到过这种情况,网上的解决办法也就那么几个,终于在我自己不断试验之下,完美解决了(禁止了)ViewPager的预加载. 好了,首先来说明一下,什么是ViewPager的预加载:ViewPager有一个 "预加载"的机制,默认会把View

android 禁止viewpager预加载

ViewPager这个控件相信每一个做android的都用过,而且一定用过,viewpager是可以前后滑动的,这在很多app中引导页中用过,大家也知道它是带缓存的,现在新建一个项目 viewpagertest, package com.example.viewpagertest; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.os.IBinder

ViewPager预加载机制

ViewPager加载图片控件: ViewPager会默认加载当前页和当前页的左右两页. 一开始当前页是下标0,所以一开始默认加载第0页(指下标,下同)和第1页. 当你向右滑动,当前页为第1页时,ViewPager会加载第2页,这时一共有3页存在(第0,1,2页). 再向右滑动,当前页为第2页时,会移除第0页,加载第3页,同理向左滑动当前页为第1页时,会移除第3页. 所以我们可以通过这个原理使ViewPager始终只加载3页的图片. 如何实现呢? 只需在在PagerAdapter中的instan

ViewPager的刷新、限制预加载、缓存所有

[框架]: 公共部分:左侧菜单.TitleBar.RadioGroup(3个RadioButton:X.Y.Z) 选择X页面:指示器+ViewPager [要达成的效果]: (1)左侧选择A,进入X页面,X1联网刷新页面,此时禁止X2预加载—>滑动到X2页面,X2才联网刷新—>X3—>X4: (2)从X4再滑到X3.X2.X1时,X1.X2.X3不需要再次刷新,假设停留在X2页面: (3)左侧再点选择B,或者先点Y再点选择B再点X,这时候X2联网刷新: (4)X2页面滑到X1.X3.X4

ViewPager和Fragment的综合使用的预加载机制

混合使用的适配器: FragmentPagerAdapter   FragmentStatePagerAdapter(Fragment数据动态性较大.占用内存较多的时候) ViewPager的预加载:ViewPager 会默认预先初始化当前页面的左右相邻页面,它的预先加载页面数量默认是 1 , 并且是private的不可以修改,这样做的好处是左右滑动会比较流畅. 懒加载:即让ViewPager预加载初始化UI,而具体一些数据,网络访问请求等延迟加载.这是靠Fragment里有一个 setUser

viewpager处理(三):让viewpager不预加载下一页

有时候viewpager加载页面的时候,我们发现页面的数据量很大,预加载的话会消耗性能,为了节省用户流量和手机性能,所以我们想让viewpager不自动预加载下一页,怎么实现呢? viewpager预加载是这样产生的:在PagerAdapter里的instantiateItem方法中,如果有加载数据的逻辑,则viewpager就会预加载.所以加载数据的逻辑不能放在PagerAdapter里的instantiateItem方法中.我们可以将加载数据逻辑放到页面切换监听中. 1.加载数据不放在Pag

去除预加载的Viewpager

package com.example.zhbj_heima47.view; /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtai

ViewPager+Fragment取消预加载(延迟加载)

在项目中,都或多或少地使用的Tab布局,所以大都会用到ViewPager+Fragment,但是Fragment有个不好或者太好的地方.例如你在ViewPager中添加了三个Fragment,当加载ViewPager中第一个Fragment时,它会默认帮你预先加载了第二个Fragment,当你加载第二个Fragment时,它会帮你加载第三个Fragment.这样虽然有时很好,但是用户只需看一个Fragment时,我们就做了一些多余工作加载了第二个Fragment.在这只需要取消Fragment的

ViewPager+Fragment取消预加载(延迟加载)(转)

原文:http://www.2cto.com/kf/201501/368954.html 在项目中,都或多或少地使用的Tab布局,所以大都会用到ViewPager+Fragment,但是Fragment有个不好或者太好的地方.例如你在ViewPager中添加了三个Fragment,当加载ViewPager中第一个Fragment时,它会默认帮你预先加载了第二个Fragment,当你加载第二个Fragment时,它会帮你加载第三个Fragment.这样虽然有时很好,但是用户只需看一个Fragmen