關於Fragment的顯示狀態

2021-08-03 09:17:04 字數 473 閱讀 2332

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

getfragmentmanager().begintransaction().hide(mfragmentarray[1]).show(mfragmentarray[0]).commitallowingstateloss();
一種是viewpager和fragment組合。這兩種方式分別會觸發不同的方法,來控制顯示狀態。第一種方式,會觸發onhiddenchanged()方法。第二種方式,會觸發setuservisiblehint()。所以應該根據實際的使用場景來實現顯示狀態的監聽。

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

Fragment的狀態丟失

1 問題描述 場景 場景 viewpager繫結smarttablayout,每個viewpager裡面繫結乙個fragment 使用fragmentpageradapter 錯誤 當我們繫結的fragment過多的時候,切換到後面的fragment再返回第一頁的時候,發現資料被清除了 2 問題分析...

關於Fragment之間的互動

override public void onattach activity activity 二 新的onattach context context 方法,由於引數是context,可以直接獲得宿主activity的物件,避免了使用介面的步驟,更加簡單。public void onattach ...

Fragment 判斷是否顯示當前Fragment

fragment雖然有onresume和onpause的,但是這兩個方法是activity的方法,呼叫時機也是與activity相同,和viewpager搭配使用這個方法就很雞肋了,根本不是你想要的效果,這裡介紹一種方法。在fragment顯示出來呼叫的方法 public void setuserv...