Android之Fragment的切换不对Fragment进行重新加载
来源:互联网 发布:蜜蜂软件的注册码 编辑:程序博客网 时间:2024/05/22 03:18
开发的时候,有时候Fragment的切换,是不需要对原先的Fragment进行重新加载的。而Fragment的界面是既可以进行重新加载,也可以不进行重新加载。
每次重新加载的话,我们是使用的replace来进行fragment的替换的。
如果,不对fragment的数据进行重新加载的话,那么就用add来添加fragment,显示的时候用show,切换的时候用hide掉当前的,show切换的目标。
具体的实现代码如下:
private FragmentManager fm;private FragmentTransaction ft;
//之前显示的fragmentpublic Fragment mContent, fragment_in, fragment_qm, fragment_se;
//三个fragmentfragment_in = new MakePlanFragment();fragment_qm = new CourseFragment();fragment_se = new MakePlanFragment();setDefaultFragment(fragment_in);设置默认的fragment的显示。没有切换的时候显示的fragment。
public void setDefaultFragment(Fragment fragment) { fm = getFragmentManager(); ft = fm.beginTransaction(); ft.add(R.id.fragment_content, fragment).commit(); mContent = fragment;}
//切换fragment的显示隐藏public void switchContent(Fragment to) { if (mContent != to) { fm = getFragmentManager(); ft = fm.beginTransaction(); if (!to.isAdded()) { // 先判断是否被add过 ft.hide(mContent).add(R.id.fragment_content, to).commit(); // 隐藏当前的fragment,add下一个到Activity中 } else { ft.hide(mContent).show(to).commit(); // 隐藏当前的fragment,显示下一个 } mContent = to; }}上面的这个switchContent的方法就是切换fragment的方法封装。在使用的地方,直接传入我们需要的目标fragment即可。如下:
switchContent(fragment_in);传参为我们要切换的目标fragment。这样就实现了我们的切换fragment,但是不重新进行加载。
如果要进行重新加载,关键代码如下:
fm = getFragmentManager();ft = fm.beginTransaction();ft.replace(R.id.fragment_content, fragment_in);ft.commit();这就是重载与不重新加载的区别。理解了本质就简单多了。
1 0
- Android之Fragment的切换不对Fragment进行重新加载
- Android之Fragment的切换不对Fragment进行重新加载
- 切换Fragment导致fragment重新加载
- FragmentTabHost切换Fragment避免重新加载Fragment,即重复调用Fragment的onCreateView。
- android viewPager 切换页面时防止fragment重新加载
- android FragmentTabHost切换Fragment时避免UI重新加载
- android viewPager 切换页面时防止fragment重新加载
- Android在切换Fragment过程中,如何避免重新加载
- Android之切换Fragment只加载一次
- 关于fragment切换重新加载的解决分享给大家
- Android 关于fragment切换重新加载的解决分享给大家
- Android 关于fragment切换重新加载的解决分享给大家
- Android 关于fragment切换重新加载的解决分享给大家
- Android学习之解决多个Fragment切换时重新实例化的问题
- android fragment的切换
- Fragment切换重新或不重新加载界面
- Fragment切换重新与不重新加载界面
- Fragment切换重新或不重新加载界面
- C# 汉字转拼音
- poj1741Tree
- Redis主从复制总结整理
- iOS中UIDatePicker显示中文日期
- SQL防注入SqlParameter的使用
- Android之Fragment的切换不对Fragment进行重新加载
- 什么是IP化改造
- Python操作oracle数据库
- 调度工具:Airflow
- RSA加密解密封装
- prototype、proto和constructor的关系
- 动静分离操作日志记录
- 学习Maven之Properties Maven Plugin(编译时动态获取properties参数)
- 简单工厂模式