Android fragments 片段中的ViewPager未显示

Android fragments 片段中的ViewPager未显示,android-fragments,android-viewpager,Android Fragments,Android Viewpager,我有一个带有一些按钮的父片段活动,每个按钮打开一个子片段。其中一个片段片段A只包含一个完整的页面视图寻呼机,它显示另外两个片段:B和C。当我第一次打开片段A时,视图寻呼机工作正常,B和C出现。如果我点击一个打开另一个片段的按钮,然后点击返回片段a,那么B和C将不再出现 有什么想法吗?我已经试过很多东西了 片段A中的代码: public class FragmentA extends Fragment { FragmentPagerAdapter adapterViewPager; ViewPa

我有一个带有一些按钮的父片段活动,每个按钮打开一个子片段。其中一个片段片段A只包含一个完整的页面视图寻呼机,它显示另外两个片段:B和C。当我第一次打开片段A时,视图寻呼机工作正常,B和C出现。如果我点击一个打开另一个片段的按钮,然后点击返回片段a,那么B和C将不再出现

有什么想法吗?我已经试过很多东西了

片段A中的代码:

public class FragmentA extends Fragment {

FragmentPagerAdapter adapterViewPager;
ViewPager vpPager;
private FragmentActivity myContext;

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

    final View rootView = inflater.inflate(R.layout.fragmentA, container, false);
    vpPager = (ViewPager) rootView.findViewById(R.id.vpPager);
    adapterViewPager = new MyPagerAdapter(myContext.getSupportFragmentManager());
    vpPager.setAdapter(adapterViewPager);
    return rootView;
}

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

    adapterViewPager.notifyDataSetChanged();
}


public static class MyPagerAdapter extends FragmentPagerAdapter {
    private static int NUM_ITEMS = 2;

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

    // Returns total number of pages
    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    // Returns the fragment to display for that page
    @Override
    public android.support.v4.app.Fragment getItem(int position) {
        switch (position) {
            case 0: 
                return new FragmentB();
            case 1:
                return new FragmentC();

            default:
                return null;
        }
    }

}

@Override
public void onAttach(Activity activity) {
    myContext=(FragmentActivity) activity;
    super.onAttach(activity);
}
public void onClickFragmentA(View v) {
    android.app.FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction()
            .replace(R.id.frame_container, new FragmentA()).commit();

}
以及打开片段A的按钮的父FragmentActivity中的代码:

public class FragmentA extends Fragment {

FragmentPagerAdapter adapterViewPager;
ViewPager vpPager;
private FragmentActivity myContext;

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

    final View rootView = inflater.inflate(R.layout.fragmentA, container, false);
    vpPager = (ViewPager) rootView.findViewById(R.id.vpPager);
    adapterViewPager = new MyPagerAdapter(myContext.getSupportFragmentManager());
    vpPager.setAdapter(adapterViewPager);
    return rootView;
}

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

    adapterViewPager.notifyDataSetChanged();
}


public static class MyPagerAdapter extends FragmentPagerAdapter {
    private static int NUM_ITEMS = 2;

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

    // Returns total number of pages
    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    // Returns the fragment to display for that page
    @Override
    public android.support.v4.app.Fragment getItem(int position) {
        switch (position) {
            case 0: 
                return new FragmentB();
            case 1:
                return new FragmentC();

            default:
                return null;
        }
    }

}

@Override
public void onAttach(Activity activity) {
    myContext=(FragmentActivity) activity;
    super.onAttach(activity);
}
public void onClickFragmentA(View v) {
    android.app.FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction()
            .replace(R.id.frame_container, new FragmentA()).commit();

}

在FragmentA中,在onResume方法中重新初始化UI组件

View rootView;

public void onResume() {
    super.onResume();
    initializeUIComponents();
}

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

private void initializeUIComponents(){

    vpPager = (ViewPager) rootView.findViewById(R.id.vpPager);
    adapterViewPager = new MyPagerAdapter(myContext.getSupportFragmentManager());
    vpPager.setAdapter(adapterViewPager);
}

您愿意分享您的解决方案吗?我遇到了相同的问题,即一旦包含的片段被暂停并恢复,ViewPager中的片段就不会显示。