0
我已經在我的應用中實施了滑動視圖。該適配器是一個FragmentStatePagerAdapter。滑動視圖片段中的內容可能會相互影響。Android:如何更新刷卡視圖中的緩存片段?
問題:ViewPager將一個片段緩存到左側,一個到右側。在一個片段中所做的更改不會反映在左側和右側的緩存片段中。只有在足夠的滑動之後(以便碎片不再緩存並且必須重建),變化纔會變得可見。
我試着用
viewPager.setOffscreenPageLimit(0);
禁止此行爲,但沒有奏效。這也可能會降低滑動性能。
我試過的下一件事是覆蓋片段中的onResume()以更新內容。但是,看起來,onResume()在刷入該片段之前未被調用。
最後,我想這一點:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Fragment fragment = (Fragment) viewPager.getAdapter().instantiateItem(viewPager, position);
TextView text = (TextView) fragment.getView().findViewById(R.id.text);
text.setText("bla");
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
這給出了片段一個NullPointerException,因爲instantiateItem不返回相應的片段,但父活動。
現在,更新緩存片段的推薦方法是什麼?
ViewPager.setOffscreenPageLimit(0)不工作,因爲離屏頁的最小值爲1。 – Sevle
[這](http://stackoverflow.com/questions/26359308/refresh-fragment-in-viewpager-using- fragmentstatepageradapter)可以幫助你 – Sevle