fragment常见方法以及用法

来源:互联网 发布:淘宝海淘假货店名单 编辑:程序博客网 时间:2024/05/08 14:37

在Activity中通过getFragmentManager(v4包中使用getSupportFragmentmanager)方法获取到FragmentManager;

        使用

        FragmentManager fm = getFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();开启一个事务

使用transaction对fragment进行基本操作

transaction.add();添加一个fragment

transaction.remove();移除一个fragment,remove()会将这个实力彻底移除,(fragment加入回退栈情况除外)

transaction.replace();替换当前的fragment

transaction.hide();设为不可见,不会被销毁

transaction.show();将隐藏的fragment 设为可见

transaction.detach();将view总UI中移除,不同于remove,fragment还有可以有fragmentManager进行管理

transaction.attch();将view附加到UI上并进行显示

transaction.commite();提交一个事务

commit方法一定要在Activity.onSaveInstance()之前调用,否则会报State loss这样的错误;

fragment切换时需要保存页面上的输入信息等需要使用hide()和show();不需要保留可以使用add,remove或者replace;

remove和detach的区别在于,remove会销毁fragment的实例,detach会销毁视图结构不会销毁其实例;



添加fragment 进入回退栈中的方法是transaction.addToBackStack(fragment);可以向activity一个退回前一个fragment;



fragment与activity之间的通信

如果你Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法

如果Activity中未保存任何Fragment的引用,那么没关系,每个Fragment都有一个唯一的TAG或者ID,可以通过getFragmentManager.findFragmentByTag()或者findFragmentById()获得任何Fragment实例,然后进行操作。

在Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作。





0 0
原创粉丝点击