編輯:關於android開發
由於Fragment的方便性,現在很多人開始大量使用Fragment。 今天使用時遇到各問題,記錄下來並分享下。
使用Fragment都會用FragmentActivity ,特別是在用到ViewPager時。因為需要FramgmentManager,
而我這次有兩個fragment中都用到了ViewPager。 其實也是開始的時候沒考慮好。然後都使用的FragmentActivity的FramgmentManager去處理。 但是發現在第一個頁面打開後,進入第二個頁面,此時第二個頁面上內容是空的,查看log,第二個頁面的ViewPager 的子view的onCreatView 方法並沒有調用,這是什麼鬼。。
百度發現是PagerAdapter的instantiateItem 中使用tag從FramgmentManager中查詢Fragment的,如果找到了,會直接使用之前的,而不會重新創建,
PagerAdapter的tag生成是根據你的pagerID 和 index 生成的。
說明什麼呢?說明第一個頁面中存在和第二個頁面相同tag的Fragment 。也就是有兩個fragment具有相同的父id,和index。
index有重復的很好理解,那麼就是說明使用了相同的pagerID。
然後想起來當時直接復制的布局文件,所以id相同,改了id,問題迎刃而解。
這個問題在於倆個關鍵的地方:
1.使用了相同的FramgmentManager實例
2. ViewPager的id相同。
所以平時使用這種容器類的控件,盡量使id不同,否則就可能產生類似的問題。
參考 :http://www.trinea.cn/android/android-source-code-analysis/multi-viewpager-to-fragment-not-init/
Android性能優化之常見的內存洩漏 前言 對於內存洩漏,我想大家在開發中肯定都遇到過,只不過內存洩漏對我們來說並不是可見的,因為它是在堆中活動,而要想檢測程序中是
ArcGIS for Android地圖控件的5大常見操作轉,arcgisandroidhttp://blog.csdn.net/arcgis_mobile/articl
Android高效計算——RenderScript(一),androidrenderscript高效計算——RenderScript Render
MD5簡單實例,md5實例如圖當點擊按鈕時,會先判斷是否第一次登陸,如果是第一次登陸登陸則會彈出設置密碼的彈窗,若果登陸過則彈出登陸彈窗 其中輸入的密碼會用MD5加密下