古詩詞大全網 - 成語故事 - 如何管理fragment回退棧

如何管理fragment回退棧

遇到的問題:

通過FragmentTransaction的replace方法會導致,每次都會重新調用fragment的onCreateView()方法,浪費時間。

解決方法:

通過FragmentTransaction的hide和show方法來實現fragment的顯示和隱藏,這樣就不會重復調用onCreateView函數了。

FragmentTransactioin 可以用來添加,刪除fragment,也可以控制fragment的顯示和隱藏。

這是如果調用addToBackStack(null),此時的狀態就會被保存在回退棧,按返回鍵的時候就會顯示出棧頂的

getSupportFragmentManager().popBackStack() 這個方法可以讓棧頂的fragment出棧。

只有在程序運行時被動態添加的fragment才會被添加到後退棧。

getSupportFragmentManager().beginTransaction()

.add(R.id.fragment_container, newFragment,"testa")

.addToBackStack(null)

.commit();

程序跑起來之後,通過這個方法後退棧數才會加壹,如果在代碼中壹口氣添加多個,再運行程序,getSupportFragmentManager().getBackStackEntryCount()得到的後退棧數值為零。