1. 程式人生 > >關於Fragment的顯示狀態

關於Fragment的顯示狀態

Fragment的使用有兩種方式,一種是手動控制fragment的顯示和隱藏,例如:

        getFragmentManager().beginTransaction().hide(mFragmentArray[1]).show(mFragmentArray[0]).commitAllowingStateLoss();

一種是ViewPager和Fragment組合。這兩種方式分別會觸發不同的方法,來控制顯示狀態。第一種方式,會觸發onHiddenChanged()方法。第二種方式,會觸發setUserVisibleHint()。所以應該根據實際的使用場景來實現顯示狀態的監聽。

另外,由於可能會存在fragement的巢狀,當父fragment沒有在顯示狀態變更時,系統並不會自動同步子fragment的顯示狀態,所以這時候子fragment的顯示狀態並不可信,所以當子fragment需要判斷當前的顯示狀態時,應該加上父fragment的顯示狀態的判斷。