文档章节

关于fragment切换重新加载的解决分享给大家

SuShine
 SuShine
发布于 2015/06/25 15:28
字数 278
阅读 92
收藏 0
在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment
但是,这样会有一个问题 ,应该很多朋友都遇到过:
每次切换的时候,Fragment都会重新实例化,也就是运行OnCreatVIew()方法
那么如何让多个Fragment彼此切换时不重新实例化?
正确的切换方式是add(),切换时hide(),add()另一个Fragment,再次切换时,只需hide()当前,show()另一个。
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
//之前显示的fragment
        private Fragment mContent;
        /** 修改显示的内容 不会重新加载 **/
        public void switchContent(Fragment to) {
                if (mContent != to) {
                        FragmentTransaction transaction = getSupportFragmentManager()
                                        .beginTransaction();
                        if (!to.isAdded()) { // 先判断是否被add过
                                transaction.hide(mContent).add(R.id.content, to).commit(); // 隐藏当前的fragment,add下一个到Activity中
                        } else {
                                transaction.hide(mContent).show(to).commit(); // 隐藏当前的fragment,显示下一个
                        }
                        mContent = to;
                }
                showContent();
        }

最后我给出最近刚开始的一个项目 做了一部分框架功能 包含SlideMenu 和 Json解析 供大家参考!

本文转载自:http://blog.csdn.net/sfshine/article/details/20650935

共有 人打赏支持
SuShine
粉丝 123
博文 504
码字总数 148653
作品 0
朝阳
后端工程师
android 开发积累-fragment卡死

Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组...

veblen_pong
2015/04/29
0
0
viewpager和fragment切换加载数据的问题

activity中需要显示一个切换页显示3个不同的视图数据,这里需要使用viewpager+fragment实现切换。在fragment中需要在onstart或者onresume中初始化加载数据。但是viewpager在切换fragment时会...

Turman
2016/03/21
1K
0
开源中国 OsChina Android 客户端源码分析(13)Fragment学习

在客户端源码中,我们可以看到大量的Fragment,关于Fragment的相关学习,给大家推荐一篇值得学习的博客: http://blog.csdn.net/lmj623565791/article/details/37970961 本文 主要介绍 Fragme...

姬鑫
2015/11/27
322
1
fragment+viewPage 界面出现假死情况,

今天遇到一个奇葩BUG,fragment+viewpage 界面数据多层叠加在一起,表层数据数据出现假死,列表数据可以在后面滑动。 一、底部TAB,一般3-5个,点击某个TAB,上面页面也随之切换,早期的时候A...

Remix_jx
2016/07/07
41
0
关于FragmentActivity中调用fragment中方法

private void initFragment() { mRecommendFragment = new RecommendFragment();mInvestFragment = new InvestFragment();mClassRoomFragment = new ClassRoomFragment();mMineFragment = ne......

钓伯乐
2016/03/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

学习设计模式——命令模式

参考博客 1. 认识命令模式 1. 定义:将一个请求封装成为一个对象,从而可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,并支持可撤销操作。 2. 组织结构: Commond:定义命令的...

江左煤郎
15分钟前
0
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
6
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
0
0
Coding and Paper Letter(四十)

资源整理。 1 Coding: 1.Tomislav Hengl撰写的非官方作者指南:Michael Gould•Wouter Gerritsma。 UnofficialGuide4Authors 2.R语言包rwrfhydro,社区贡献的工具箱,用于管理,分析和可视化...

胖胖雕
昨天
0
0
JAVA 内存回收

参考:https://www.cnblogs.com/leesf456/p/5218594.html 1,JMV 中哪些可以作为 GC Root? 1. 虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中引用的对象。 2. 方法区中的类静态属性引...

Carlyle_Lee
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部