文档章节

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

SuShine
 SuShine
发布于 2015/06/25 15:28
字数 278
阅读 81
收藏 0
点赞 0
评论 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解析 供大家参考!

© 著作权归作者所有

共有 人打赏支持
SuShine
粉丝 118
博文 435
码字总数 88625
作品 0
青岛
后端工程师
Fragment的陷阱

以前做过的一个项目,Fragment嵌套高德地图,当再次进入Fragment的时候,会出现奇怪的现象。嵌套的地图会出现滑动不动的情况,起先还以为是高德的bug呢,经过一番研究,终确定这是一个坑。 ...

Jack_1900 ⋅ 2014/07/28 ⋅ 2

android 开发积累-fragment卡死

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

veblen_pong ⋅ 2015/04/29 ⋅ 0

viewpager和fragment切换加载数据的问题

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

Turman ⋅ 2016/03/21 ⋅ 0

开源中国 OsChina Android 客户端源码分析(13)Fragment学习

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

姬鑫 ⋅ 2015/11/27 ⋅ 1

fragment+viewPage 界面出现假死情况,

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

Remix_jx ⋅ 2016/07/07 ⋅ 0

关于FragmentActivity中调用fragment中方法

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

钓伯乐 ⋅ 2016/03/23 ⋅ 0

TabLayout+ViewPager+Fragment实现页面切换(菜单底部或顶部)

父布局 使用 使用Tab自带的设置文字图片 适配器 fragment使用 关于切换事件的监听 其他小细节 1.talayout去掉下标 app:tabIndicatorHeight="0dp" 2.关于加载fragment时重复加载的问题,设置v...

东西南瓜西葫芦 ⋅ 2016/07/16 ⋅ 0

QQ HD 界面实现 :Fragment 状态保存,如何实现切换回来仍是切换前的状态

在做一个类似PAD版的QQ的界面效果,左侧是一个Fragment,显示功能的图标,右侧显示各个图标对应的功能页,也是一个Fragment,右侧的Fragment布局是FrameLayout。现在的情况是:点击第一个图片...

阿顺顺 ⋅ 2013/03/25 ⋅ 3

实现底部导航栏及切换tab重新加载的问题解决

许多的App都使用底部导航栏来实现导航功能,我们可以使用RadioGroup+RadioButton的形式或者直接Button数组的方式实现,而谷歌官方提供了FragmentTabHost来方便快捷实现底部导航栏。 android....

一剑围城 ⋅ 2017/02/08 ⋅ 0

手机商城第二天,各个功能按钮的切换与显示不同界面

这几天晚上练习科目三,一般都到10点多回来,所以更新比较晚。 代码已上传到码云上,有兴趣的可以下载看看 https://git.oschina.net/joy_yuan/ShoppingMall 上个项目中,页面切换,是做了一个...

老婆的宝宝 ⋅ 2017/08/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 46分钟前 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 7

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部