相信大家都遇見過這樣的需求绣的,就是viewpager嵌套fragment的時候上邊一般都有自己的標題標簽欄高氮,如果上邊還有分類選擇彼哼,點擊選擇的時候就要刷新標簽欄迹淌,那么已經(jīng)加載的fragment也需要重新刷新河绽,如果直接做以下操作
fragments.clear();
fragments.add(fragment);
pagerAdapter.notifyDataSetChanged();
這樣會發(fā)現(xiàn)數(shù)據(jù)并沒有刷新,在網(wǎng)上找了一下唉窃,發(fā)現(xiàn)可能是FragmentPagerAdapter有緩存的原因耙饰,具體我也不是很清楚,還是直接說解決方法吧纹份,其實很簡單苟跪。。蔓涧。使用FragmentStatePagerAdapter然后重寫其getItemPosition方法:
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
返回值POSITION_NONE代表讓系統(tǒng)重新加載
而默認的POSITION_UNCHANGED是沒有改變的
這樣pagerAdapter.notifyDataSetChanged();就有可以有效的刷新數(shù)據(jù)了