Android之取消ViewPage+Fragment的预加载

摘要:
Android取消了ViewPage+Fragment的预加载。使用过ViewPage+Fragment组合的童鞋自然知道这个问题。没有遇到过这个问题的学生希望你永远不要遇到它,呵呵。直接指向键代码注释:每次显示或隐藏片段时都会调用setUserVisibleHint。因为它的调用序列是onCreate,所以需要一些常量来判断?mHasLoadedOnce&&mArrayList==null){//asynchttprequestheremHasLoaded Once=true;}}超级的setUserVisibleHint;}由于setUserVisibleHint优于onCreate,因此调用onCreate后不会触发setUserVisiableHint。在这种情况下,您需要在第一个显示的片段上调用setUserVisibleHint方法?
Android之取消ViewPage+Fragment的预加载

用过ViewPage+Fragment组合的童鞋自然知道这个问题,没有遇到的同学祝愿你们永远不会遇到,呵呵。直接上关键代码

注释:setUserVisibleHint每次fragment显示与隐藏都会调用,他的调用顺序由于onCreate,所以需要一些常量进行判断

1
2
3
4
5
6
7
8
9
10
11
12
13
privatebooleanmHasLoadedOnce = false;
@Override
    publicvoidsetUserVisibleHint(booleanisVisibleToUser) {
        if(this.isVisible()) {
            // we check that the fragment is becoming visible
            if(isVisibleToUser && !mHasLoadedOnce && mArrayList==null) {
                 
                                // async http request here
                mHasLoadedOnce = true;
            }
        }
        super.setUserVisibleHint(isVisibleToUser);
    }


由于setUserVisibleHint优于onCreate调用,所以当onCreate调用完毕setUserVisibleHint就不会触发,这时需要在首个显示的fragment调用setUserVisibleHint方法

1
2
3
4
5
6
@Override
    publicvoidonActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        setUserVisibleHint(true);
        super.onActivityCreated(savedInstanceState);
    }

这个是设置viewpager保留多少个显示界面

1
pager.setOffscreenPageLimit(3);

免责声明:文章转载自《Android之取消ViewPage+Fragment的预加载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Xcode 6 AutoLayout Size ClassesObject-c 内存管理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Thymeleaf 模板的使用

Thymeleaf是现代化服务器端的Java模板引擎,不同与JSP和FreeMarker,Thymeleaf的语法更加接近HTML,并且也有不错的扩展性。详细资料可以浏览官网。本文主要介绍Thymeleaf模板的使用说明。 模板(template fragments)### 定义和引用模板 日常开发中,我们经常会将导航栏,页尾,菜单等部分提取成模板供其...

Android ----------------- 面试题 整理 一

1. XML的解析方式都有哪些? 每一种解析方式的运行流程? 设XML为:<a>a<b>bc<c>c1</c></b></a> Dom SAXPull 2.<a>a<b>bc<c>c1</c></b></a>...

使用阿里ARouter路由实现组件化(模块化)开发流程

Android平台中对页面、服务提供路由功能的中间件,我的目标是 —— 简单且够用。 这是阿里对Arouter的定位,那么我们一起来梳理一下Arouter使用流程,和使用中我所遇到的一些问题! 先来看看有哪些功能 模块化的要解决的问题 模块间页面跳转(路由); 模块间事件通信; 模块间服务调用; 模块的独立运行; 模块间页面跳转路由拦截(登录) 其...

[原] OpenGL ES 学习笔记 (一)

1.OpenGL ES 的坐标系在屏幕上的分布 OpenGL ES 的坐标系{x, y, z} 通过图片的三维坐标系可以知道: - 它是一个三维坐标系 {x, y, z} - 三维坐标中心在正方体的几何中心 {0, 0, 0} - 整个坐标系是 [0, 1] 的点,也就是说 OpenGL 中只支持 0 ~ 1 的点 (这里所讲的 0 和 1 ,最好理...

Geometry shader总结

什么是Geometry Shader GS存在于vertext shader和固定功能vertex post-processing stage之间,它是可选的不是必要的。GS的输入是单个primitive,输出可能是0个或多个primitive.  GS的作用 GS的主要作用就是从已有的primitive中生成新的primitive,它可以“无中生有”的...

Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误

嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 getChildFragmentManager() 来获取FragmentManger. 虽然看起来和在activity中添加fragment差不多, 但因为f...