多个fragment之间切换加载数据卡顿
Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。有可能会导致卡顿。
就需要用到Fragment里的setUserVisibleHint这个方法里。
解决办法
package com.xgs.panku.ui; import android.app.Fragment; /** * 类描述:当切换到这个fragment的时候初始化控件 * 作者:@zyx * 时间:2016/8/22 11:10 * 邮箱:zhangyuanxiao@monster-tld.com */public abstract class BaseFragment extends Fragment{ //判断是否显示 protected boolean isVisible; /** * 在这里实现Fragment数据的缓加载. * @param isVisibleToUser */ @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(getUserVisibleHint()){ isVisible = true; //加载数据 onVisible(); }else{ isVisible = false; onInvisible(); } } /** * fragment被设置为可见时调用 */ protected void onVisible(){ isLoading(); } /** * fragment被设置为不可见时调用 */ protected void onInvisible(){} //获取数据的抽象方法 protected abstract void isLoading();}调用方式:
- // 判断是否加载
- private boolean isPrepared;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- Log.d(LOG_TAG, "onCreateView");
- View view = inflater.inflate(R.layout.fragment_open_result, container, false);
- //XXX初始化view的各控件
- isPrepared = true;
- lazyLoad();
- return view;
- }
- @Override
- protected void isLoading() {
- if(!isPrepared || !isVisible) {
- return;
- }
- //填充各控件的数据
- }
转载于:https://www.cnblogs.com/zyx20160131/p/5794929.html
多个fragment之间切换加载数据卡顿相关推荐
- linux访问文档根目录之外的网页_开发文档加载不再卡顿,亿点点提升
作为一个头(ku)秃(bi)的开发者,查阅各种文档是家常便饭,但由于中国特色在查阅一些文档时总是加载中.而且有时外场调试还不一定有网,因而将文档本地化是相当有必要的.本文介绍了一种将文档编译为静态网页 ...
- 如何解决web端图片加载慢卡顿的问题???
公司官网上面有一的功能是在后台发布公司动态之后,在前台显示公司动态内容. 但是上上周团建之后,上传的公司动态中的图片加载速度就非常的慢. 图片加载慢的原因有两个: 1.图片过大导致的加载缓慢. 2.网 ...
- 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据
在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据 如今,最流行的拍照设备智能手机可以捕获高达4K UHD的图像(3840×2160图像),原始数据超过25 MB.即使 ...
- spring 启动加载数据_12个很棒的Spring数据教程来启动您的数据项目
spring 启动加载数据 Spring Data的任务是为数据访问提供一个熟悉且一致的,基于Spring的编程模型,同时仍保留基础数据存储的特殊特征. 它使使用数据访问技术,关系和非关系数据库, ...
- android 移除fragment,Android Viewpager+Fragment取消预加载及Fragment方法的学习
1.在使用ViewPager嵌套Fragment的时候,由于VIewPager的几个Adapter的设置来说,都会有一定的预加载.通过设置setOffscreenPageLimit(int numbe ...
- fragment的懒加载
1 为什么需要懒加载 用fragment+viewpager+fragmentPagerAdapter作为框架 ,会出现fragment预加载. 2.用setUserVisibleHint()方法可以 ...
- PyTorch训练中Dataset多线程加载数据,比Dataloader里设置多个workers还要快
PyTorch训练中Dataset多线程加载数据,而不是在DataLoader 背景与需求 现在做深度学习的越来越多人都有用PyTorch,他容易上手,而且API相对TF友好的不要太多.今天就给大家带 ...
- 【PyTorch训练中Dataset多线程加载数据,比Dataloader里设置多个workers还要快】
文章目录 一.引言 二.背景与需求 三.方法的实现 四.代码与数据测试 五.测试结果 5.1.Max elapse 5.2.Multi Load Max elapse 5.3.Min elapse 5 ...
- Fragment的懒加载与生命周期详解
提示:本文仅为笔者学习记录 Fragment的懒加载与生命周期详解 什么是懒加载 了解Fragment的生命周期 onAttach onCreate onCreateView onActivityCr ...
最新文章
- 安装RADOS gateway(CEPH对象存储)
- 简洁高效的linux kfifo环形缓冲区
- eureka多台注册中心_spring cloud注册中心之Eureka
- 第七届蓝桥杯-剪邮票(深搜+广搜)
- DataGridView行号发生变化 使用的事件
- Day10(--JSP与JSP内置对象)
- Java中方法与数组
- erlang中如何调试程序
- 2022年新版千月影视APP带H5功能的源码-亲测好用
- win10安装steam有损计算机,Win10专业版无法安装steam软件怎么办?
- C# 实现的几种在线翻译
- JavaScript之排他思想详述
- 自定义圆形、半圆形ProgressBar
- Kali 如何放大字体与图标
- 谷歌地图api 微信小程序_使用Google的融合位置提供程序API进行实时位置跟踪
- chown与chmod的区别
- Microbiome:微生物组名词定义
- 婚宴座位图html5,婚宴怎么安排座位 结婚喜宴座位安排图
- qt5之QComboBox用法
- 服务器无法替换dll文件,教你如何彻底删除服务器上的残留dll文件
热门文章
- java买房子钓鱼,AcWing 1262. 鱼塘钓鱼(Java 贪心 Or 优先队列)
- 两个有序数组的合并问题
- win7、win8旗舰版系统下载、32位、64位
- 2021年第3季度中国跨境进口零售电商市场规模为1166.7亿元 退货中心仓模式将降低企业的成本忧虑
- 响铃:什么样的网综才配得上“超级网综”?
- spark DataFrame 根据条件替换数据中的值,并保留非条件的原始值
- C#---高级|设计模式(1)
- 微信定时发送天气python3
- Linux用户空间与内核空间内存映射
- Java学习day015(日期,格式化)