Android开发之Fragment的加载方式
Posted mangues
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开发之Fragment的加载方式相关的知识,希望对你有一定的参考价值。
android开发之Fragment的加载方式
1.利用replace
2.利用show、hide
3.回退栈
1.利用replace
频繁地replace Fragment来切换,会不断创建新实例,销毁旧的,浪费资源,无法重用。
在onCreate 里面初始化一个fragmentOne
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.id_content,fragmentOne).show(fragmentOne).commit();
需要切换fragmentTwo的时候
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.id_content, fragmentTwo);
ft.commit();
2.利用show、hide
如果Fragment需要重用或者不断切换,可以使用该方法提高性能。
if (!fragment.isAdded()) //判断有没有加载过
getSupportFragmentManager().beginTransaction().hide(temp).add(R.id.id_content, fragment).commit();
else
getSupportFragmentManager().beginTransaction().hide(temp).show(fragment).commit();
3.回退栈
像Activity一样通过栈的方式来管理Fragment,和replace相比 增加了栈的管理
fragmentOne 转 FragmentThree FragmentThree 返回fragmentOne 实现
fragmentOne跳转:
FragmentThree fragment = new FragmentThree();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.id_content,fragment);
//将当前的事务添加到了回退栈
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
FragmentThree返回上一层:
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.popBackStack();
案例地址
AndroidLearnAgain
com.mangues.fragment 包下
以上是关于Android开发之Fragment的加载方式的主要内容,如果未能解决你的问题,请参考以下文章
Android开发之漫漫长途 Fragment番外篇——TabLayout+ViewPager+Fragment
Android实战开发篇 ViewPager+Fragment 取消预加载