通過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()得到的後退棧數值為零。