Fragment懒加载

package com.bpj.lazyfragment;

import android.support.v4.app.Fragment;
/*

*baseFragment

*/

public class LazyFragment extends Fragment {
    /**
     * 当前Fragment是否显示:true,显示
     */
    public boolean isVisible ;
    
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        isVisible = false;
        if(getUserVisibleHint()){
             isVisible = true;
             onVisible();
        }
    }
    
    protected void onVisible(){
        
    }
    
}

/*

*子Fragent

*/

package com.bpj.lazyfragment;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment2  extends LazyFragment {
    
    public static Fragment2 newInstance(){
        Fragment2 fragment1 = new Fragment2();
        return fragment1;
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    
        View view = inflater.inflate(R.layout.fragment2,null);
        return view;
    }
    
    @Override
    public void setMenuVisibility(boolean menuVisible) {
        super.setMenuVisibility(menuVisible);
        if (this.getView() != null)
            this.getView()
                    .setVisibility(menuVisible ? View.VISIBLE : View.GONE);
    }
    
    @Override
    protected void onVisible() {

//刷新的方法
        System.out.println("Fragment2开始加载。。。");
    }
    
}

时间: 2024-08-10 21:09:40

Fragment懒加载的相关文章

Android中ViewPager+Fragment懒加载问题解决方案

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878 本文出自[DylanAndroid的博客] Android中ViewPager+Fragment懒加载问题解决方案 在Android中我们经常会用到ViewPager+Fragment组合.然而,有一个很让人头疼的问题就是,我们去加载数据的时候 由于ViewPager的内部机制所限制,所以它会默认至少预加载一个.这让人很郁闷,所以,我就想到要封装一个Fragme

Fragment懒加载预加载

1. 预加载viewpager.setOffscreenPageLimit(2);,默认是预加载1,可以结合懒加载使用. 如果希望进入viewpager,Fragment只加载一次,再次滑动不需加载(只有退出Activity), 可以重写viewpager adapter的getItem,去掉super 2.懒加载 public abstract class LazyFragment extends Fragment { protected boolean isVisible; /** * 在这

封装篇——Fragment懒加载

为什么要做fragment的懒加载封装呢???一个字"懒"!!! 我老大告诉我:不会偷懒的程序员不是个好厨师 ^~^ ^~^ ^~^ 我们可能会以 viewpager(或其他容器)与多个Fragment组合使用,相信使用过的猿(媛)友们都碰到过下面的这些问题: 1. 预加载Fragment时,也就是加载不可见的Fragment时,该不可见的Fragment初始化数据和页面可能占用了大量的资源: 2. 如果当页面内有动画或者是存在其它持续性的操作,fragment的状态切换时操作的开关问

ViewPager+Fragment 懒加载

转载于: 作者:尹star链接:http://www.jianshu.com/p/c5d29a0c3f4c來源:简书 ViewPager+Fragment的模式再常见不过了,以国民应用微信为例,假设微信也是ViewPager+Fragment的实现方式,那表现形式上就是一个ViewPager管理了四个Fragment,左右滑动来回切换.但是ViewPager有一个奇葩的特性叫:预加载,比如打开微信,首先看到的是第一个Tab(微信),但事实上第二个Tab(通讯录)已经加载好了.当选择第二个Tab(

关于Fragment的懒加载问题

为了达到界面效果,我们有时需要使用到TabLayout+ViewPager的方式来布局界面,然而ViewPager的adapter总是默认把与当前可见的fragment相邻的两个fragment给加载出来.一旦界面数据太多,信息量太大,往往造成资源过多消耗,界面卡顿,甚至会造成程序崩溃...这时,我们就需要使用到fragment的懒加载方式,即第一次看到的时候自动加载当前页面,相邻的fragment不再预加载. Google官网提供给我们setUserVisibleHint这个方法.(API地址

Android ViewPager Fragment使用懒加载提升性能

?? Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Android ViewPager内在的加载机制,导致一个比较严重的加载性能问题,具体来说,假设一个ViewPager中有n多个Fragment,那么ViewPager在初始化阶段将一次性的初始化FragmentPagerAdapter中的至少3个Fragment(如果Fragment多于3),创建和加载Fra

Android--Fragment的懒加载

我们都知道,fragment放在viewPager里面,viewpager会帮我们预先加载一个,但是当我们要看fragment里面的内容时,我们也许只会去看第一个,不会去看第二个,如果这时候不去实现fragment的懒加载的话,就会多余的去加载一些数据,造成用户多消耗流量,所以我们采取懒加载的方式. 所谓懒加载,就是当fragment完全可见的时候我们再去加载数据 我们知道,当我们去滑动的时候,fragment会显示与隐藏,当fragment完全显示在我们的眼前时,fragment会调用一个方法

FragmentViewpager与Fragment实现懒加载

做项目的时候会我也会遇到许许多多的问题,也会失望,想放弃,那就是心态的问题了,如果遇到问题你以积极的心态去解决,我相信任何问题都不是问题,记住万事,自有方法,关键是不怕问题,去解决它,把挫折转化为经验,那才是最好的. 好了,废话不多说了,我也改讲一讲怎么实现懒加载, 先看看界面是怎样的: 暂时没有数据,不影响我们的效果,界面是一个订单的Activity,布局是上面一个自定义的TitileBar,下面是一个TabLayout,一个最下面是一个Viewpager,待会会在viewpager里面通过V

viewpager+fragment的懒加载实现微信点击和滑动切换功能(切换效果)

前言 1.从上一片文章之后已经半年没有写文章了,那篇文章之后公司进入疯狂的加班,一直到放年假.年后回来之后换了一家创业公司之后,然后又进入疯狂的加班(≧﹏ ≦) -所以一直都没有写文章(其实这都是借口⊙﹏⊙).现在公司没有那么忙了,也该把文章捡起来了,这毕竟是百利有一害的事(一害:费时间). 2.这半年里除了对代码的热情更加高涨(虽然它总是虐我千百遍(≧﹏ ≦) ),还深深的中了爬山的毒,对于年轻的我来说,爬山让我明白了许多.懂得了许多,也锻炼了我的身体.对于程序员来说身体是非常重要的,大家在周