文档章节

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

SuShine
 SuShine
发布于 2015/06/25 15:28
字数 278
阅读 94
收藏 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
博文 538
码字总数 153323
作品 0
朝阳
后端工程师
私信 提问
viewpager和fragment切换加载数据的问题

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

Turman
2016/03/21
1K
0
android 开发积累-fragment卡死

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

veblen_pong
2015/04/29
0
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

没有更多内容

加载失败,请刷新页面

加载更多

GROUP BY GROUPING SETS

GROUPING SETS 子句是 SELECT 语句的 GROUP BY 子句的扩展。通过 GROUPING SETS 子句,您可采用多种方式对结果分组,而不必使用多个 SELECT 语句来实现这一目的。这就意味着,能够减少响应时...

hblt-j
11分钟前
0
0
selenium之表格的定位

真的勇士, 敢于直面惨淡的warning、 敢于正视淋漓的error 目录 被测试网页的HTML代码 1.遍历表格所有单元格 2.定位表格中的某个元素 3.定位表格中的子元素 总结 浏览器网页常常会包含各类表...

程序猿拿Q
16分钟前
0
0
adb命令启动展讯平台工厂模式

adb命令启动展讯工厂模式: adb shell am start com.sprd.engineermode/com.sprd.engineermode.EngineerModeActivity...

东街小霸王
17分钟前
0
0
mtu值怎样设置才网速最快

一、什么是 MTU 值 1 从字面上来说,MTU 是英文 Maximum Transmission Unit 的缩写,即最大传输单元,它的单位是字节。 在我们常用的以太网中,MTU 一般是 1500,而无线路由器默认一般是 14...

Clarence_D
35分钟前
1
0
McAfee阻止邮件发送功能

自己写的邮件发送功能,在本地机器上可以发送,但是放到服务器上面之后就不能发送了,捕获到的异常是“以一个访问权限不允许的方式做了一个访问套接字的尝试”,找了很久,终于发现是被McAfe...

壹峰
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部