gpt4 book ai didi

Android - ViewPager 问题中的 fragment 内的 fragment

转载 作者:行者123 更新时间:2023-11-29 20:16:43 34 4
gpt4 key购买 nike

在我的应用程序中,我有一个轮换 4 个 fragment 的 View 寻呼机。其中一些 fragment 内部还有其他 fragment 。 Viewpager 第一次启动一个 Fragment 时它工作正常,但如果我旋转并返回到前一个 fragment ,则内部 fragment 无法显示(我注意到它们中的 getActivity() 返回 null)。

例如,应用程序启动,我在 viewpager 中移动并看到所有主要 fragment ,它们看起来很好,然后我向后滚动,每个具有内部 fragment 的主要 fragment 都没有正确显示。

我为我的 ViewPager 使用“FragmentStatePagerAdapter”,代码如下(例如变量名称)。

私有(private)类 ContentPagerAdapter 扩展了 FragmentStatePagerAdapter {

    public ContentPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Parcelable saveState() {
return null;
}

@Override
public Fragment getItem(int pos) {

Fragment fragment = null;
try {
if (pos == POS1) {
if (fragment1 == null) {
fragment1 = Fragment1.newInstance();
}
fragment = fragment1;
} else if (pos == POS2) {
if (fragment2 == null) {
fragment2 = Fragment2.newInstance(something);
}
fragment = fragment2;
} else if (pos == POS3) {
if ( fragment3 == null ) {
fragment3 = Fragment3.newInstance(something3);
}
fragment = fragment3;
} else { //default
if (fragment4 == null) {
fragment4 = Fragment4.newInstance(something4);
}
fragment = fragment4;
}
}catch (Exception e) {
Log.e(AppConstants.APP_TAG, "Cannot create fragment", e);
finish();
}

return fragment;
}

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

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

最佳答案

在实例化 PagerAdapter 时,使用 getChildFragmentManager() 而不是 getFragmentManager()。如果需要更多信息,类似的问题已在此处解决 ViewPager in TabFragment not loading second time

关于Android - ViewPager 问题中的 fragment 内的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715334/

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