多個viewpager可能產生的問題

2022-08-14 00:09:13 字數 681 閱讀 9972

由於fragment的方便性,現在很多人開始大量使用fragment。 今天使用時遇到各問題,記錄下來並分享下。

使用fragment都會用fragmentactivity ,特別是在用到viewpager時。因為需要framgmentmanager,

而我這次有兩個fragment中都用到了viewpager。 其實也是開始的時候沒考慮好。然後都使用的fragmentactivity的framgmentmanager去處理。  但是發現在第乙個頁面開啟後,進入第二個頁面,此時第二個頁面上內容是空的,檢視log,第二個頁面的viewpager 的子view的oncreatview 方法並沒有呼叫,這是什麼鬼。。

pageradapter的tag生成是根據你的pagerid 和 index 生成的。

說明什麼呢?說明第乙個頁面中存在和第二個頁面相同tag的fragment 。也就是有兩個fragment具有相同的父id,和index。

index有重複的很好理解,那麼就是說明使用了相同的pagerid。

然後想起來當時直接複製的布局檔案,所以id相同,改了id,問題迎刃而解。

這個問題在於倆個關鍵的地方:

1.使用了相同的framgmentmanager例項

2. viewpager的id相同。

所以平時使用這種容器類的控制項,盡量使id不同,否則就可能產生類似的問題。

參考 :

可能產生的集合

無字典順序集合 說明 給定一組數字或符號 產生所有可能的集合 包括空集合 例如給定1 2 3 則可能的集合為 解法 如果不考慮字典順序,則有個簡單的方法可以產生所有的集合,思考二進位數字加法,並注意 1出現的位置,如果每個位置都對應乙個數字,則由1所對應的數字所產生的就是乙個集合,例 如 000 0...

產生可能的集合(C python

給定一組數字或符號 產生所有可能的集合 包括空集合 例如給定1 2 3 則可能的集合為 如果不考慮字典順序,則有個簡單的方法可以產生所有的集合,思考二進位數字加法,並注意1出現的位置,如果每個位置都對應乙個數字,則由1所對應的數字所產生的就是乙個集合,例 如000 001 010 011 100 1...

Runtime Error可能產生的原因

runtime error 執行時錯誤 就是程式執行到一半,程式就崩潰了。除以零 陣列越界 int a 3 a 10000000 10 指標越界 int p p int malloc 5 sizeof int p 1000000 10 使用已經釋放的空間 int p p int malloc 5 s...