gpt4 book ai didi

android - FragmentStatePagerAdapter 返回错误的位置但正确的 fragment

转载 作者:行者123 更新时间:2023-11-29 19:34:21 25 4
gpt4 key购买 nike

我有一个名为 MainActivity 的 Activity ,它有一个 ViewPager 和一个 TabLayout。 ViewPager 有 4(四)个 fragment 绑定(bind)在那里。我有一个关于(也许)FragmentStatePagerAdapter 的问题

我有我的代码运行

public class MainPagerAdapter extends FragmentStatePagerAdapter {

Fragment[] fragments;

public MainPagerAdapter(FragmentManager fm) {
super(fm);
fragments = new Fragment[]{
new FragProfile(),
new FragScore(),
new FragMoney(),
new FragOther()
};
}

@Override
public Fragment getItem(int p) {
Log.w("Fragment", String.valueOf(p));

switch (p){
case 0:
return fragments[0];
case 1:
return fragments[1];
case 2:
return fragments[2];
case 3:
return fragments[3];
default:
return null;
}
}

@Override
public int getCount() {
return 4;
}
}

在第一个选项卡上,我得到了这个日志

09-10 20:05:29.683 17034-17034/ampersanda.elsys W/Fragment: 0
09-10 20:05:29.684 17034-17034/ampersanda.elsys W/Fragment: 1

第二个

09-10 20:11:03.970 17034-17034/ampersanda.elsys W/Fragment: 2

第三名

09-10 20:11:54.534 17034-17034/ampersanda.elsys W/Fragment: 3

但是在第四次我没有任何记录,然后我回到第三次我得到了这个

09-10 20:14:07.373 17034-17034/ampersanda.elsys W/Fragment: 1

回到秒

09-10 20:14:50.241 17034-17034/ampersanda.elsys W/Fragment: 0

然后我回到第一个,我没有再记录任何内容

我的代码运行不好,但是我得到了 Fragment 显示,比如它的 switch() 但不是关于它里面的代码

最佳答案

在您的情况下,您应该使用 FragmentPagerAdapter,因为当您使用 FragmentStatePagerAdapter 时页面可能会被破坏,因此您需要在 getItem() 中重新创建它们。

This version of the pager is more useful when there are a large number of pages, working more like a list view. When pages are not visible to the user, their entire fragment may be destroyed, only keeping the saved state of that fragment.

关于android - FragmentStatePagerAdapter 返回错误的位置但正确的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39426472/

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