天天看點

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();

        }

demo:http://download.csdn.net/detail/jdsjlzx/9385695

繼續閱讀