关于fragment多次调用onCreateView的问题

原创 2016年02月11日 14:28:00

当第一次创建fragment的时候在onCreateView里面初始化view,下一次创建时不需要重新创建view时,希望使用已经创建的,所以要把view设为全局变量。view为空,表示是第一次,则初始化view。如果view不为空,则返回该view,需要注意的是:如果直接返回会报错(java.lang.IllegalStateException: The specified child already has a parent),还没研究什么原因,但是大体意思就是有一个parent了,所以在返回该view前要找到该view的parent,然后remove掉该view,再返回就ok了。

下面代码来源于网络:

private View rootView;
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (null != rootView) {
            ViewGroup parent = (ViewGroup) rootView.getParent();
            if (null != parent) {
                parent.removeView(rootView);
            }
        } else {
            rootView = inflater.inflate(layoutId, null);
            initView(rootView);// 控件初始化
        }
        return rootView;
    }

Android Fragment onCreateView方法调用时间

Fragment 有onCreate()和onCreateView()方法,onCreate方法是在类创建时调用,而onCreateView方法是在Fragment布局显示的时候才会调用,Fragme...

Fragment的onCreate和onCreateView区别

onCreate是指创建该fragment类似于Activity.onCreate,你可以在其中初始化除了view之外的东西,onCreateView是创建该fragment对应的视图,你必须在这里创...

fragment中onCreateView与onActivityCreated的区别,以及fragment中生命周期的利用

最近使用了一个自定义的view在activity中运行正常,可在fragment中就奔溃,无提示,之前view是在onCreateView中初始化并调用的,崩溃,换到onActivityCreated...

Fragment中的onCreatView()没有立即调用

项目中发现Fragment中的onCreatView()没有立即调用,例如: @Override protected void onCreate(Bundle savedInstanceState){...

Fragment和View的比较

Fragment和View都有助于界面组件的复用,这在大型工程里边是特别重要的,但是二者又有所区别。 1、Fragment的复用粒度更大。Fragment有完整的生命周期,从代码设计角度讲可以提高...

ViewPager预加载问题和onCreateView多次调用问题的解决

1,在使用ViewPager嵌套Fragment的时候,由于ViewPager的几个Adapter的设置来说,都会有一定的预加载(默认是左右各一个Frament)。通过设置setOffscreenPa...

避免同一activity下 多个fragment 切换时重复执行onCreateView方法

原文请点击这里 private View rootView;//缓存Fragment view @Override public View onCreateView(Layo...

解决同一activity下多个fragment 切换时重复执行onCreateView方法

Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。 解决的办法是:在Fragment onCreateVie...

android之针对fragment多次调用onCreateView的问题

private View rootView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup con...

Fragment如何避免onCreateView重复调用

在做一个使用Fragment的项目中,遇到在滑动Fragment的过程中不断重复调用onCreateView的问题,导致控件不断初始化,影响程序的整体逻辑。于是便使用Log打印了所有可重写的父类方法。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于fragment多次调用onCreateView的问题
举报原因:
原因补充:

(最多只允许输入30个字)