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

private View rootView;//缓存Fragment view

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
		if(rootView==null){
			rootView=inflater.inflate(R.layout.tab_fragment, null);
		}
 //缓存的rootView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。
        ViewGroup parent = (ViewGroup) rootView.getParent();
        if (parent != null) {
            parent.removeView(rootView);
        } 
		return rootView;
	}

Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。

解决办法:在Fragment onCreateView方法中缓存View

时间: 2024-11-06 07:34:52

避免同一activity下 多个fragment 切换时重复执行onCreateView方法的相关文章

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

Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态. 解决的办法是:在Fragment onCreateView方法中缓存View. private View rootView;//缓存Fragment view @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedIns

让多个Fragment 切换时不重新实例化

转自:http://www.yrom.net/blog/2013/03/10/fragment-switch-not-restart/ 让多个Fragment 切换时不重新实例化 在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment: 1 2 3 4 5 6 7 8 9 public void switchContent(Fragment fragment) { if(mContent != fragment) { mContent = fragment

Android解决多个Fragment切换时布局重新实例化问题

本文借鉴自:http://www.jianshu.com/p/d9143a92ad94 至于fragment的使用就不多说了,直奔主题, 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare

两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容

尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky 需求 在搭界面有这么样一个需求:需要两层的Fragment嵌套,内层需要滑动切换效果,外层界面不需要滑动效果.那么内层使用ViewPager切换,外层就使用replace切换.这样搭出来的界面不能得到需要的效果,内层的Fragment只有第一次能显示内容,之后切换外层Fragment时,内层Fragent都是空着的. 我再尝试两层Fragment都使用replace切换,这样就能达到效果了.但是项

android viewpager fragment切换时界面卡顿解决办法

目前开发的程序在切换View时界面卡顿现象比较严重,影响用户体验,当前项目共就四个View,每个View也只是按钮,所以可以同时加载,不让其它view销毁. 只需在Adapter中重载destroyItem类即可 @Override public void destroyItem(ViewGroup container, int position, Object object) { //重载该方法,防止其它视图被销毁,防止加载视图卡顿 //super.destroyItem(container,

多个Fragment切换时不重新实例化------------转

在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment: public void switchContent(Fragment fragment) { if(mContent != fragment) { mContent = fragment; mFragmentMan.beginTransaction() .setCustomAnimations(android.R.anim.fade_in, R.anim.slide_out) .replace(R.

Activity嵌套多个Fragment实现横竖屏切换

一.上图 二.需求 近期项目遇到个横竖屏切换的问题,较为复杂,在此记之. 1.Activity中竖屏嵌套3个Fragment,本文简称竖屏FP1,FP2,FP3. 2.其中竖屏FP1与FP2可以切换为横屏的FL1,FL2,即竖屏FP1切换到对应的横屏FL1,竖屏FP2对应切换到横屏FL2. 3.FP3不允许横竖屏切换. 4.竖屏FP1,FP2,FP3用ViewPager实现左右滑动切换. 5.横屏的FL1,FL2用布局中的切换按扭实现左右切换,不允许滑动切换. 看到这需求有点儿晕菜了吧!!!呵呵

让多个Fragment切换不实例化

让多个Fragment 切换时不重新实例化 在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment: public void switchContent(Fragment fragment) { if(mContent != fragment) { mContent = fragment; mFragmentMan.beginTransaction() .setCustomAnimations(android.R.anim.fade_in, R.anim.

两层fragment嵌套时出现空白,(收藏别人的)

完美解决 两层Fragment,内层空白 转载:http://blog.csdn.net/bingospunky/article/details/51352400 目录(?)[+] 前言 两层Fragment在某些情况下,内层Fragment会显示空白,这是一个比较常见的问题,以前我也有一些解法,这次又遇到了这个问题,索性看了一下Fragment相关的源码,找到了问题的根源. 如果你想看一下什么样的代码会出现Fragment出现空白,这个demo会告诉你. 之前写过一篇文章两层Fragment嵌