gpt4 book ai didi

android - 重新创建包含 fragment 时未加载 ViewPager 中的 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:15 28 4
gpt4 key购买 nike

我有一个 Fragment MyFragment 和一个包含更多 FragmentViewPager。它在我第一次加载 MyFragment 时正常工作,但如果我返回并重新创建它,则 ViewPager 中的 Fragments 不会显示,因为方法 FragmentPagerAdapter.getItem 未被调用。

我在用

怎么了?

import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
...

public class MyFragment extends Fragment {

private ViewPager pager;
private MyPagerAdapter adapter;

private List<Fragment> fragmentList = new ArrayList<Fragment>();

public MyFragment() {}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.my_fragment_layout, container, false);
}

public void onViewCreated(View v, Bundle savedInstanceState) {
super.onViewCreated(v, savedInstanceState);

indicators = (PagerSlidingIndicator) v.findViewById(R.id.indicators);
pager = (ViewPager) v.findViewById(R.id.pager);

Fragment fragment1 = new Fragment1();
fragmentList.add(fragment1);

Fragment fragment2 = new Fragment2();
fragmentList.add(fragment2);

Fragment fragment3 = new Fragment3();
fragmentList.add(fragment3);

adapter = new IndicatorPagerAdapter(getFragmentManager());
pager.setAdapter(adapter);
}

public class MyPagerAdapter extends FragmentPagerAdapter {

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

@Override
public int getCount() {
return fragmentList.size();
}

@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
}
}

最佳答案

如果您正在使用嵌套 fragment (“我有一个 Fragment MyFragment 和一个包含更多 fragment 的 ViewPager”),您需要使用 getChildFragmentManager(),而不是 getFragmentManager(),在设置您的 FragmentPagerAdapter 时。

关于android - 重新创建包含 fragment 时未加载 ViewPager 中的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25808225/

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