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
- Android使用(TabLayout+ViewPager+fragment)與(FragmentTabHost+ViewPager+Fragment)實現底部狀態列切換AndroidTabLayoutViewpagerFragment
- ToolBar、TabLayout、Fragment+ViewPager的開發實踐TabLayoutFragmentViewpager
- TabLayout+ViewPager+Fragment實現懶載入完全解決方案TabLayoutViewpagerFragment
- 利用ViewPager和Fragment實現頁卡切換ViewpagerFragment
- Android tabLayout+viewPager+fragment處理懶載入AndroidTabLayoutViewpagerFragment
- 使用ViewPager和TabLayout來實現滑動切換效果ViewpagerTabLayout
- 安卓開發:viewpager + fragment 實現滑動切換安卓ViewpagerFragment
- SAP Fiori 頁面的週期性動態重新整理功能的實現步驟
- Tablayout+Viewpager+Fragment組合使用以及懶載入機制TabLayoutViewpagerFragment
- Android ViewPager2 + Fragment 聯動AndroidViewpagerFragment
- Android ViewPager2 + Fragment + BottomNavigationView 聯動AndroidViewpagerFragmentNavigation
- Android ViewPager Fragments滑動只重新整理當前頁AndroidViewpagerFragment
- Viewpager+FragmentStatePagerAdapter動態新增,刪除,移動位置,(區域性)更新頁面(Fragment)不閃屏,不錯位解決方案ViewpagerFragmentAPT
- ViewPager巢狀fragment簡單使用Viewpager巢狀Fragment
- apollo與springboot整合實現動態重新整理配置Spring Boot
- 手機直播原始碼,使用ViewPager2實現頁面滑動切換原始碼Viewpager
- 小程式頁面動態配置實現
- C#動態建立介面的實現例項物件C#物件
- Android 在 ViewPager 中使用 Fragment 的懶載入AndroidViewpagerFragment
- 【Android】 banner+tab吸頂+viewpager切換+重新整理載入之實現AndroidViewpager
- js實現 web頁面的滾動條下拉時載入更多JSWeb
- button按鈕重新整理頁面的幾種方式
- NOW直播Flutter動態搜尋列表頁實現Flutter
- android使用TabLayout+NestedScrollView 實現詳情介面tab頁 關聯 上下滑動檢視的效果AndroidTabLayoutView
- mse~路由實現某個頁面的灰度功能路由
- JS指令碼中重新整理當前頁面的方法JS指令碼
- vue單頁實現前進重新整理後退不重新整理Vue
- 【Android Fragment】解決ViewPager巢狀時Fragment的mUserVisibleHint屬性不同步的問題AndroidFragmentViewpager巢狀
- 分頁實現前五後五ajax區域性重新整理方式分頁實現
- 如何實現頁面重新整理後不定位到之前的滾動位置?
- vite 構建工具 如何熱更新靜態頁面?自動重新整理頁面Vite
- vue專案重新整理當前頁面的三種方法Vue
- 使用ajax實現頁面區域性重新整理
- Android實現網頁動態背景“五彩蛛網”Android網頁
- 螞蟻動態卡片,讓App首頁實現敏捷更新APP敏捷