ViewPager中資料不重新整理的問題

2021-08-18 12:27:36 字數 953 閱讀 8537

pageradapter重新整理分析

notifydatasetchanged()

public

void

notifydatasetchanged()

}mobservable.notifychanged();

}// 此處用到了觀察者模式:通知變化

public

void

notifychanged() }}

// 在上面的onchanged()方法對應viewpager中的內部類中的方法

private

class

pagerobserver

extends

datasetobserver

@override

public

void

onchanged()

// 在datasetchanged()方法中邏輯如下

void datasetchanged()

if (newpos == pageradapter.position_none) {

mitems.remove(i);

i--;

// 可以看到在datasetchanged中呼叫了getitemposition方法。

當getitemposition方法返回position_unchanged時,什麼也不做,表示item沒有發生變化。當getitemposition方法返回position_none時,會將對應位置上的item移除掉,並進行重新整理

注:items除了首次進入介面大小是2,之後大小都是3個

所以從上面分析中就可以得到解決方案

只要在自定義的pageradapter中重寫getitemposition()方法就行。並且在方法中將要更新的對應的item放回position_none即可。

fragment巢狀viewpager不顯示

底部用radiogroup控制fragment的切換。以上有五個fragment。第乙個fragment,代表著首頁。首頁又是乙個類似tab的fragment,使用viewpager切換著兩個fragment。private void initviewpager view parentview 一般...

ViewPager重新整理單個頁面的方法

第二種更合理,當然相對前一種要再多做點事 思路是在instantiateitem時給每個view加上tag,然後在需要重新整理頁面時通過view.gettag 來判斷是否是我們想要重新整理的頁面,只給當前頁面返回position none。override public object instant...

React route不重新整理

使用withrouter關聯頁面元件實現跳轉重新整理。錯誤示例 import body.css import react,from react import from react router dom const home lazy import home const about lazy impo...