我是 Android 编程的新手,这是我在这个网站上的第一个问题。我花了很多时间寻找这个问题,但没有找到适合我的情况的答案。
我在 ViewPager 中有两个页面,一个用于当前页面,一个用于下一页。当第二个片段显示时,我将其索引设置为 0,删除第一个片段并创建一个新片段作为第二个片段的替换。这是我的代码。
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int pageSelected) {
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == 1) {
currentQuestFr = nextQuestFr;
nextQuestFr = newQuest();
mPager.setCurrentItem(0, false);
mPagerAdapter.notifyDataSetChanged();
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
和适配器
private class QuestPagerAdapter extends FragmentStatePagerAdapter {
public QuestPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if (position == 0) return currentQuestFr;
else return nextQuestFr;
}
@Override
public int getCount() {
return NUM_PAGES;
}
@Override
public int getItemPosition(Object object)
{
return POSITION_NONE;
}
}
该代码运行良好,但notifyDataSetChanged()
似乎不需要那样刷新我的视图。它让用户有点恼火。有没有办法在不重绘视图的情况下刷新适配器,或者以其他方式达到相同的目的?非常感谢