Android开发之Fragment的加载方式

来源:互联网 发布:飞利浦呼吸机读卡软件 编辑:程序博客网 时间:2024/05/01 01:01

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 包下

0 0
原创粉丝点击