gpt4 book ai didi

android - 创建一个在一个方向上滚动的无限 ViewPager

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:52 25 4
gpt4 key购买 nike

我是 Android 编程的新手,这是我在这个网站上的第一个问题。我花了很多时间搜索这个问题,但没有找到适合我的情况的答案。

我在 ViewPager 中有两个页面,一个用于当前页面,一个用于下一页。当显示第二个 fragment 时,我将其索引设置为 0,删除第一个 fragment 并创建一个新 fragment 来替换第二个 fragment 。这是我的代码。

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() 似乎不需要它就可以刷新我的 View 。这让用户有点恼火。有什么方法可以在不重绘 View 的情况下刷新适配器,或者有其他方法可以达到相同的目的吗?非常感谢

最佳答案

您是否希望它以一种方式工作,即它应该首先加载所有数据,然后在某些事件上手动重绘 View ?然后你可以使用mPager.setOffscreenPageLimit(n)其中 n 是您在 mPager 中的页数。这将在加载时绘制所有页面。

关于android - 创建一个在一个方向上滚动的无限 ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15332604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com