Android:FragmentManager與FragmentTransaction

FragmentManager:用來管理Fragment的,利用Activity的getFragmentManager()取得它的實例.

FragmentManager可以做如下一些事情:

1、使用findFragmentById() (用於在activity layout中提供一個UI的fragment)或findFragmentByTag()(適用於有或沒有UI的fragment)獲取activity中存在的fragment

2、將fragment從後臺堆棧中彈出, 使用 popBackStack()

3、使用addOnBackStackChangeListener()註冊一個監聽後臺堆棧變化的listener.

FragmentTransaction:是對Fragment進行添加,替換,移除等操作的。

在使用add(),replace(),remove()時可以動態的給每一個Fragment添加一個標籤,下次方便FragmentManager通過tag標籤進行查找。最後記得ft.commit();
當執行一個移除fragment的事務時, 如果沒有調用 addToBackStack(), 那麼當事務提交後, 那個fragment會被銷燬,並且用戶不能導航回到它. 有鑑於此, 當移除一個fragment時,如果調用了 addToBackStack(), 那麼fragment會被停止, 如果用戶導航回來,它將會被恢復.////我認爲是重要的, 
以上的話,可以理解,remove後,加到堆棧後。按返回還是可以返回到之前的fragment。

FragmentManager myFragmentManager;
FragmentTransaction myFragmentTransaction = myFragmentManager.beginTransaction();
Fragment myFragment = new Fragment ();
myFragmentTransaction.replace(R.id.newFrameLayout, newFragment);
myFragmentTransaction.commit();

fragment的顯示和隱藏可以用FragmentTransaction的show 或是hide來實現,
ft.show(fragment);
ft.hide(fragment);

發佈了32 篇原創文章 · 獲贊 33 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章