Android 关于fragment切换重新加载的解决分享给大家
来源:互联网 发布:激战2矩阵封印锁 编辑:程序博客网 时间:2024/05/20 05:09
在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment
但是,这样会有一个问题 ,应该很多朋友都遇到过:
每次切换的时候,Fragment都会重新实例化,也就是运行OnCreatVIew()方法
那么如何让多个Fragment彼此切换时不重新实例化?
正确的切换方式是add(),切换时hide(),add()另一个Fragment,再次切换时,只需hide()当前,show()另一个。
//之前显示的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();
但是,这样会有一个问题 ,应该很多朋友都遇到过:
每次切换的时候,Fragment都会重新实例化,也就是运行OnCreatVIew()方法
那么如何让多个Fragment彼此切换时不重新实例化?
正确的切换方式是add(),切换时hide(),add()另一个Fragment,再次切换时,只需hide()当前,show()另一个。
//之前显示的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();
}
demo:http://download.csdn.net/detail/jdsjlzx/9385695
4 12
- 关于fragment切换重新加载的解决分享给大家
- Android 关于fragment切换重新加载的解决分享给大家
- Android 关于fragment切换重新加载的解决分享给大家
- Android 关于fragment切换重新加载的解决分享给大家
- Android之Fragment的切换不对Fragment进行重新加载
- Android之Fragment的切换不对Fragment进行重新加载
- android fragment生命周期,转来给大家分享
- android viewPager 切换页面时防止fragment重新加载
- android FragmentTabHost切换Fragment时避免UI重新加载
- android viewPager 切换页面时防止fragment重新加载
- Android在切换Fragment过程中,如何避免重新加载
- 切换Fragment导致fragment重新加载
- Android学习之解决多个Fragment切换时重新实例化的问题
- Android解决多个Fragment切换时布局重新实例化问题(挺详细的)
- 关于Fragment的加载和切换问题
- 关于切换fragment时候,重复创建销毁fragment导致重新加载数据问题
- FragmentTabHost切换Fragment避免重新加载Fragment,即重复调用Fragment的onCreateView。
- 关于切换Fragment的不重新实例化的解决方法
- linux服务器操作手册
- Linux C 函数参考(日期时间)
- Jenkins介绍
- CUGBACM Codeforces Tranning 5解题报告
- CentOS 7 上systemctl 的用法
- Android 关于fragment切换重新加载的解决分享给大家
- 发的是翻译官方德固赛反光阿斯ugdfuisaguiasdghi娿
- 中文linux安装oracle界面乱码解决方案
- java jdbc 获取最新插入的数据
- 感性/容性/电阻负载
- 在CentOS中安装中文字体
- 数据包传输的全过程
- Hadoop RPC框架
- iOS_电池状态