Java 从另一个片段导航后返回时,ViewPager不可见

Java 从另一个片段导航后返回时,ViewPager不可见,java,android,android-fragments,android-viewpager,Java,Android,Android Fragments,Android Viewpager,我有一个默认创建的经典底部导航,有3个选项卡(FragmentOne、FragmentTwo和FragmentThree)。 第一个片段(FragmentOne)具有两个静态内部片段(FragmentInner1和FragmentInner2)的ViewPager 当应用程序启动时,evrything很好,因此在FragmentOne中,我们可以看到FragmentInner1,并可以导航到FragmentInner2 但是从FragmentTwo导航到FragmentOne后,Fragment

我有一个默认创建的经典底部导航,有3个选项卡(FragmentOne、FragmentTwo和FragmentThree)。 第一个片段(FragmentOne)具有两个静态内部片段(FragmentInner1和FragmentInner2)的ViewPager

当应用程序启动时,evrything很好,因此在FragmentOne中,我们可以看到FragmentInner1,并可以导航到FragmentInner2

但是从FragmentTwo导航到FragmentOne后,FragmentInner1不可见。这是一个问题

我想我们应该以某种方式重新创造它? 我从这里研究了手册,但它没有帮助,我的代码看起来也一样

请帮忙。谢谢大家!

FragmentOne

public class FragmentOne extends Fragment {

    //This is our viewPager
    private ViewPager viewPager;

    //Fragments
    FragmentInner1 fragmentInner1;
    FragmentInner2 fragmentInner2;

    ViewPagerAdapter adapter;

    private View view;

    public FragmentOne() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {

         view = inflater.inflate(R.layout.fragment_fragment_one, container, false);

        //Initializing viewPager
        viewPager = (ViewPager) view.findViewById(R.id.viewpager);

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

        setupViewPager(viewPager);

        return view;
    }

    private void setupViewPager(ViewPager viewPager) {
        adapter  = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
        fragmentInner1=new FragmentInner1();
        fragmentInner2=new FragmentInner2();
        adapter.addFragment(fragmentInner1);
        adapter.addFragment(fragmentInner2);
        viewPager.setAdapter(adapter);
    }

    @Override
    public void onAttach(Context context)
    {
        super.onAttach(context);
    }

    @Override
    public void onResume() {
        super.onResume();

    }

    @Override
    public void onPause() {
        super.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}
ViewPagerAdapter

public class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }
    @Override
    public Fragment getItem(int position) {
        Fragment fragment = mFragmentList.get(position);
        return fragment;
    }

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

    public void addFragment(Fragment fragment) {
        mFragmentList.add(fragment);
    }
}

您必须使用
getChildFragmentManager()
用于Viewpager以适应弹出功能

adapter  = new ViewPagerAdapter(getChildFragmentManager());
这是因为Viewpager有多个片段,其中Viewpager本身或由另一个片段持有。因此要调用和使用子片段


您必须使用
getChildFragmentManager()
用于Viewpager以适应弹出功能

adapter  = new ViewPagerAdapter(getChildFragmentManager());
这是因为Viewpager有多个片段,其中Viewpager本身或由另一个片段持有。因此要调用和使用子片段