0

I have 4 fragments and inside one fragment i have a viewpager and a different class where i define the viewpager's adapter with 3 other fragments, the first time when i open this fragment all the sub fragments show properly inside viewpager but when i switch (i use transaction.replace) to another fragment and i return again here the sub fragments are gone, i cannot use ChildFragmentManager as it shows error on code (ChildFragmentManager cannot be resolved to a type(i have latest support library updates)), how can i load these sub fragments everytime i show this fragment ?

here are some of my code :

public class MainFragment extends Fragment {

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

        view = inflater.inflate(R.layout.fragment_mainfragment1, null);
        mPager = (ViewPager) view
            .findViewById(R.id.fMainPager);
        mPagerAdapter = new SubFragmentMainPagerAdapter(getFragmentManager());
        mPager.setAdapter(mPagerAdapter);
        mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                mActionBar.setSelectedNavigationItem(position);
            }
        });
        // mPager.setCurrentItem(1);
        return view;
    }

PagerAdapter:

public class SubFragmentMainPagerAdapter extends FragmentPagerAdapter {

private Context mContext;
FragmentManager fragMan; 


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

@Override
public Fragment getItem(int e) {
    switch (e) {
    case 0:
        return new SubFragment_1();

    case 1:
        return new SubFragment_2();

    case 2:
        return new SubFragment_3();
    }
    return null;

}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return 3;
}

}

Homombi
  • 133
  • 7
  • I think this will definitely help.. http://stackoverflow.com/questions/18386254/viewpagers-fragments-view-lost-when-viewpagers-parent-fragment-hidden-then-sh – Paresh P. Nov 29 '15 at 17:19
  • @Trivial thanks for support but i have an issue with getChildFragmentManager(); – Homombi Nov 29 '15 at 17:23

1 Answers1

1
  1. Use android.support.v4.app.Fragment instead of android.app.Fragment
  2. Switch to import android.support.v4.app.FragmentManager using getSupportFragmentManager() instead of getFragmentManager
  3. Now use getChildFragmentManager() for nested fragments
  4. And in case you still haven't, switch to AppCompatActivity
Sourabh
  • 8,243
  • 10
  • 52
  • 98
  • Actually all my fragments are using support.v4 – Homombi Nov 29 '15 at 17:20
  • where i can read more about AppCompatActivity ? i've never seen that before – Homombi Nov 29 '15 at 17:21
  • did you also use `getSupportFragmentManager`? – Sourabh Nov 29 '15 at 17:22
  • That means something in your app is not from support libraries, did you try using [AppCompatActivity](http://android-developers.blogspot.in/2015/04/android-support-library-221.html) instead of ActionBarActivity or FragmentActivity – Sourabh Nov 29 '15 at 17:29
  • i tried now with SupportFragmentManager but now the current sub fragment's view goes and from 3 sub fragments it shows only 2 and if i try again to switch fragment i remain with only 1 sub fragment – Homombi Nov 29 '15 at 17:29
  • AppCompatActivity also shows me that cannot be resolved to a type, what is going wrong ? i have installed my support library updates from sdk manager – Homombi Nov 29 '15 at 17:31
  • Do you have support-v4 22.1.+? – Sourabh Nov 29 '15 at 17:34
  • As i saw in SDK MANAGER i have support-v4 23.1.1 installed – Homombi Nov 29 '15 at 17:37