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.id.content_frame, fragment) // 替换Fragment,实现切换
- .commit();
- }
- }
- 每次切换时此个Fragmnet都会被实例化,这种方式使用时适合只做一次处理,永久性的替换。如果它的切换平率过高的话,不建议使用replace()忒费内存
- 建议使用:切换方式是add(),切换时hide(),add()另一个Fragment;再次切换时,只需hide()当前,show()另一个。
这样就能做到多个Fragment切换不重新实例化:
/*
* 设置Fragment选择
*/
private void setFragmentSelection(int index) {
ft = fm.beginTransaction();
initFragment(ft); 每次切换时都隐藏刚才显示的
switch (index) {
// 当选择的是私人的时候
case R.id.rb_personGroup:
if (fragment_Person == null) {
fragment_Person = new ULFragment_Person();
ft.add(R.id.userlist_fragement_main, fragment_Person);
} else {
// 重建view视图,附加到UI上并显示。
ft.show(fragment_Person);
}
break;
// 当选择的是共享组的时候
case R.id.rb_sharedGroup:
if (fragment_Shared == null) {
fragment_Shared = new ULFragment_Shared();
ft.add(R.id.userlist_fragement_main, fragment_Shared);
} else {
// 重建view视图,附加到UI上并显示。
ft.show(fragment_Shared);
}
break;
}
ft.commit();
}
/*
* 初始化Fragment 记性判断fragment是否隐藏。
*/
private void initFragment(FragmentTransaction ft2) {
if (fragment_Person != null) {
// 会将view从UI中移除,和remove()不同,此时fragment的状态依然由FragmentManager维护。
ft2.hide(fragment_Person);
}
if (fragment_Shared != null) {
ft2.hide(fragment_Shared);
}
}
Fragment 切换问题的更多相关文章
- ViewPager+RadioGroup实现标题栏切换,Fragment切换
1.说明: 在使用RadioGroup做标题栏切换的时候,跟ViewPager的滑动有冲突,最后查看了源码+断点调试解决了一些碰到的问题,写一篇博客总结一下,有同样需求的朋友可以借鉴一下,自己以后有用 ...
- fragment切换刷新 及下拉刷新
此工程较BaiduLocationXMLFragmentDB相比:1.滑动fragment自动刷新该fragment2.下拉刷新fragment,上拉暂未实现 a.fragment切换刷新 1 . 由 ...
- ViewPager -- Fragment 切换卡顿 性能优化
当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即 Fragment需要加载UI内容,而又频繁地切换Fragment, ...
- 实现Fragment 切换时不重新实例化
以前实现Fragment的切换都是用replace方法实现 public void startFragmentAdd(Fragment fragment) { FragmentManager frag ...
- 让多个Fragment 切换时不重新实例化、FragmentTabHost切换Fragment时避免UI重新加载
http://www.tuicool.com/articles/FJ7VBb FragmentTabHost切换Fragment时避免UI重新加载 不过,初次实现时发现有个缺陷,每次FragmentT ...
- 两层Fragment嵌套,外层Fragment切换时内层Fragment不显示内容
尊重他人劳动成果,转载请说明出处:http://blog.csdn.net/bingospunky/article/details/46847269 需求 在搭界面有这么样一个需求:须要两层的Frag ...
- 巧妙实现缺角radiogroup控制多个fragment切换和滑动
在android开发中,用一个radiogroup控制多个fragment切换是十分常见的需求.但是如果fragment是一个ListView,如何保证滑动的时候通过缺角可以看到下面的listview ...
- Android使得Fragment 切换时不重新实例化
以前实现Fragment的切换都是用replace方法实现 public void startFragmentAdd(Fragment fragment) { FragmentManager frag ...
- 让多个Fragment 切换时不重新实例化
转自:http://www.yrom.net/blog/2013/03/10/fragment-switch-not-restart/ 让多个Fragment 切换时不重新实例化 在项目中需要进行Fr ...
随机推荐
- HashMap详解
HashMap:http://www.cnblogs.com/xwdreamer/archive/2012/06/03/2532832.html ConcurrentHashMap:http://ww ...
- dshow,Sample Grabber 从摄像头采集
char* CCameraDS::QueryFrame() { long evCode, size = 0; #if CALLBACKMODE static double lastSampleTime ...
- 三种语言(c++、as、lua)中函数的差异性
对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...
- Android 开源简单控件
Android开源系列分类 查看 CircleImageView 自定义圆形控件的使用 添加依赖 ‘de.hdodenhof:circleimageview:2.1.0' 作用:无论你设置的图片是什么 ...
- [maven] 使用问题及思考汇总
(1)Maven坐标 maven坐标可以唯一标识一个项目,包含四个元素 groupId , artifactId, packaging, version. groupId:一般为团体,公司,项目.如 ...
- C# System.Diagnostics.Stopwatch 类
测量一个时间间隔的运行时间 a.调用 Start 方法 b.调用 Stop 方法 c.使用 Elapsed 属性检查运行时间. 如: System.Diagnostics.Stopwatch stop ...
- Linux基础:Grep查询&AWK查询
Grep:搜索文件内匹配指定内容的行 常用的Grep搜索方法: 1. grep "普通搜索内容" file( 或者 cat file|grep "普通搜索内容" ...
- IFE 百度前端技术学院 2016年春季班作业 第一阶段任务(1-4)的总结
具体任务详细介绍可参考http://ife.baidu.com/task/all 具体代码参考:https://github.com/sunshineqt/webxt/tree/master/stag ...
- 张艾迪(创始人):发明整个世界+224C个国家
Eidyzhang:发明整个世界+224C个国家 Eidyzhang: Genius.Founder.CEO.23 I 世界级最高级创始人.世界最高级FounderCEO 出生在亚洲中国.Eidyzh ...
- Java 之 I/O 系列 02 ——序列化(二)
Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 继续上篇的第二个问 ...