天天看點

Kotlin安卓開發:ViewPage的動态重新整理

總是遇到一個問題:

無法動态重新整理ViewPage裡的Fragment
           

ViewPage裡使用的是Fragment,list_fg就是一個fg集合、

list_fg.removeAt(msg.arg1)
  Log.d("msg:",msg.arg1.toString())
  iwh_view_page_adapter.notifyDataSetChanged()
           

這裡接收要移除的fg下标就是msg.arg1

然後調用view_page_adapter.notifyDataSetChanged()

感覺是可以,實際無效、

我們實作viewPage的adapter類有兩個

最開始用得是:FragmentPagerAdapter

發現,出現一個問題,删除第一個fg,結果最後一個fg沒了。然後,下次進入後,第一個沒了,最後一個正常、

而且從最後開始删除,就不會出現這個情況,百度一下,發現是繼承的這個adapter類的問題,他會緩存目前fg和旁邊的fg

是以沒辦法立即删除。

預設getItemPOsition會傳回無狀态改變,這裡要重寫一下,傳回強制改變狀态。這個可以百度相關資料,缺點是會重新繪制所有的fg
           
Kotlin安卓開發:ViewPage的動态重新整理
換成:FragmentStatePagerAdapter
           

就好了。

繼續閱讀