gpt4 book ai didi

java - FragmentPagerAdapter Fragment getItem位置不对?

转载 作者:行者123 更新时间:2023-12-02 10:47:52 26 4
gpt4 key购买 nike

因此,由于某种原因,当我在选项卡式 Activity 上切换选项卡时,我得到了错误的位置。

在我的帖子底部,当我启动应用程序时,您可以看到我的 logcat,选项卡 1 和选项卡 2 的 oncreateview 被调用。

即使我在选项卡 1 上,位置 0 也会切换到 1,而选项卡 1 必须位于位置 0。

所以我的问题是,当我更改选项卡时,会显示错误的数据和错误的 logcat 信息。

例如,我更改为选项卡 2,logcat 显示我从选项卡 3 调用的 oncreateview?

我该如何解决这个问题?

谢谢

public class SectionsPagerAdapter extends FragmentPagerAdapter {

private int numOfTabs;

SectionsPagerAdapter(FragmentManager fm, int numOfTabs) {
super(fm);
this.numOfTabs = numOfTabs;
}

@Override
public Fragment getItem(int position) {
switch (position){
case 0:
Log.e(TAG, "Pos: "+ position);
return new Tab1();
case 1:
Log.e(TAG, "Pos: "+ position);
return new Tab2();
case 2:
Log.e(TAG, "Pos: "+ position);
return new Tab3();
case 3:
Log.e(TAG, "Pos: "+ position);
return new Tab4();
case 4:
Log.e(TAG, "Pos: "+ position);
return new Tab5();
default:
return null;
}
}

@Override
public int getCount() {
// Get total pages
return numOfTabs;
}
}

Logcat

 .activities.MainActivity: Pos: 0
.activities.MainActivity: Pos: 1
.fragments.Tab1: onCreateView called!
.fragments.Tab2: onCreateView called!

最佳答案

ViewPager 默认加载 2 个选项卡。因此,当您第一次打开应用程序时,getItem 会被调用两次。当你转到tab2时,ViewPager会提前加载tab3,这样滚动就会平滑。请参阅offscreenPageLimit .

关于java - FragmentPagerAdapter Fragment getItem位置不对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52414710/

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