gpt4 book ai didi

android - FragmentStatePagerAdapter fragment 不可见

转载 作者:太空狗 更新时间:2023-10-29 14:14:44 24 4
gpt4 key购买 nike

我已经使用 FragmentStatePagerAdapter 实现了 View 寻呼机。我在 View 中使用了 3 个 fragment 。 View 寻呼机显示了所有 3 个带有 View 的选项卡,现在我的问题是第三个 fragment 不可见但我可以滚动到第三个选项卡,当我向后滚动时我看到第二个 fragment 但又是第一个 fragment 消失了,我只剩下第二个 fragment 。

mPager = (ViewPager)mContext.findViewById(R.id.viewPager);
mPager.setOnPageChangeListener(this);
mPagerAdapter = new MyPagerAdapter(mContext.getSupportFragmentManager(),mContext);
mPager.setAdapter(mPagerAdapter);

适配器代码是

public class MyPagerAdapter extends FragmentStatePagerAdapter {

private int NUM_PAGES = 3;
List<Fragment> listFragment = new ArrayList<Fragment>();
private MyActivity mContext;

public MyPagerAdapter(FragmentManager fragmentManager, MyActivity mActivity) {
super(fragmentManager);
this.mContext = mActivity;
listFragment.add(new FirstFragment());
listFragment.add(new SecondFragment());
listFragment.add(new ThirdFragment());
}

@Override
public int getItemPosition(Object object){
return PagerAdapter.POSITION_NONE;
}

@Override
public Fragment getItem(int position) {
Log.v("fragment position",""+position);
return listFragment.get(position);
}

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

我被困在这个问题上有一段时间了,非常感谢您的帮助。谢谢。

最佳答案

建议使用 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter,因为这两者的本质。 FragmentStatePagerAdapter 能够滚动无限 View 。如果它们的数量是固定的,就像你的情况一样,你应该使用 FragmentPagerAdapter。

如果您稍后碰巧遇到上下文问题,请重写以下方法:

    @Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
mFragments.remove(position);
mFragments.add(position, fragment);
return fragment;
}

mFragments 是您的列表。

关于android - FragmentStatePagerAdapter fragment 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453652/

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