Android 关于fragment切换重新加载的解决分享给大家

来源:互联网 发布:淘宝店铺怎么提现 编辑:程序博客网 时间:2024/05/20 05:27

Android 关于fragment切换重新加载的解决分享给大家


在项目中需要进行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();        }

例子


0 0