TabLayout + ViewPager +Fragment 實現頁面的動態重新整理
踩坑記錄:為了實現資料的返回重新整理fragment,每次重新newInstance的時候傳入了值,但是在initData(即獲取Bundle傳遞引數)的時候資料就是空的,這個問題糾結了一天。日誌出每次fragment的實體地址,是變化的,既然fragment 沒有做更新,可能就出在記憶體上面,然後嘗試在fragment 裡面增加個方法,將我需要的資料傳入進去,但是又進入了一個新的坑,fragment中的view獲取的都是空值,這個因為viewpager中的fragment已經被清除了,每次切換fragment,就會重新newInstace。折騰了好久,最後嘗試去清空viewpager的view,重新載入記憶體資料,這個原因是因為 viewpager為了滑動流暢性,fragment都是放在記憶體中去的。
在stackOverFlow看到這篇文章:https://stackoverflow.com/questions/10396321/remove-fragment-page-from-viewpager-in-android
The ViewPager doesn't remove your fragments with the code above because it loads several views (or fragments in your case) into memory. In addition to the visible view, it also loads the view to either side of the visible one. This provides the smooth scrolling from view to view that makes the ViewPager so cool.
To achieve the effect you want, you need to do a couple of things.
依據大神的指引,找到了問題的根源,也解決了現在的問題
首先要移除viewpager的view,然後將FragmentPagerAdapter替換成FragmentStatePagerAdapter,最後重寫adapter中的getitemPosition的方法,返回 PagerAdapter.POSITION_NONE ,其他的邏輯都是一樣的。忘了說一句,tablayout 在addtab的時候需要將已經add過的tab清除掉。
附上程式碼片段:
相關文章
- ViewPager、Fragment和TabLayout實現切頁效果ViewpagerFragmentTabLayout
- TabLayout+ViewPager+Fragment實現切頁展示TabLayoutViewpagerFragment
- 解決viewpager+fragment+tablayout的動態重新整理ViewpagerFragmentTabLayout
- Tablayout+ViewPager動態新增fragment懶載入TabLayoutViewpagerFragment
- TabLayout+ViewPager+fragment實現懶載入TabLayoutViewpagerFragment
- TabLayout+ViewPager+Fragment懶載入實現TabLayoutViewpagerFragment
- Android使用(TabLayout+ViewPager+fragment)與(FragmentTabHost+ViewPager+Fragment)實現底部狀態列切換AndroidTabLayoutViewpagerFragment
- tablayout+viewpager+fragment懶載入TabLayoutViewpagerFragment
- TabLayout+ViewPager+Fragment實現懶載入完全解決方案TabLayoutViewpagerFragment
- ToolBar、TabLayout、Fragment+ViewPager的開發實踐TabLayoutFragmentViewpager
- TabLayout-ViewPager填充Fragment和懶載入TabLayoutViewpagerFragment
- 利用ViewPager和Fragment實現頁卡切換ViewpagerFragment
- Android tabLayout+viewPager+fragment處理懶載入AndroidTabLayoutViewpagerFragment
- ViewPager+TabLayout+Fragment懶載入機制完全解析ViewpagerTabLayoutFragment
- 安卓開發:viewpager + fragment 實現滑動切換安卓ViewpagerFragment
- SAP Fiori 頁面的週期性動態重新整理功能的實現步驟
- ASP.NET頁面重新整理:自動重新整理頁面的實現方法總結ASP.NET
- Tablayout+Viewpager+Fragment組合使用以及懶載入機制TabLayoutViewpagerFragment
- Android ViewPager2 + Fragment 聯動AndroidViewpagerFragment
- TabLayout+ViewPager 懶載入TabLayoutViewpager
- viewpager實現畫廊(一屏多個Fragment)效果ViewpagerFragment
- Android ViewPager Fragments滑動只重新整理當前頁AndroidViewpagerFragment
- 實現網頁自動重新整理網頁
- 帶你走過ViewPager不重新整理介面的坑Viewpager
- 在Fragment裡使用viewpagerFragmentViewpager
- Android開發丶使用懶載入修復tablayout+viewpager+fragment的預載入AndroidTabLayoutViewpagerFragment
- Android開發之ViewPager+Fragment+FragmentTabHost實現底部選單AndroidViewpagerFragment
- 動態建立FragmentFragment
- viewpager 動態增減Viewpager
- 委託實現動態時間重新整理
- Android ViewPager2 + Fragment + BottomNavigationView 聯動AndroidViewpagerFragmentNavigation
- 三行程式碼實現TabLayout+ViewPager的Tab滑動效果,從封裝到開源行程TabLayoutViewpager封裝
- 安卓仿微信Tab頁用Fragment實現安卓Fragment
- Viewpager+FragmentStatePagerAdapter動態新增,刪除,移動位置,(區域性)更新頁面(Fragment)不閃屏,不錯位解決方案ViewpagerFragmentAPT
- Web頁面動態重新整理時間Web
- ViewPager巢狀fragment簡單使用Viewpager巢狀Fragment
- 用ISAPI方式實現Web頁面的自動更新 (轉)APIWeb
- 如何實現重新整理網頁網頁