dimanche 19 juin 2016

ViewPager not creating RecyclerView first time

I have 3 tabs on my Viewpager each containing a fragment. The first and last tabs both have recyclerViews. The problem is when the app is first created, the recyclerView on the last page is not drawn until I swipe away from it and swipe back. It looks like the code on my onViewCreate for my last fragment is not being called until I swipe away from it. I tried to override DestroyItem on my ViewPagerAdapter with no luck. If I use viewPager.setOffscreenPageLimit the final Fragment is simply not drawn.

Here is the code for my ViewPager Adapter:

public class ViewPagerAdapter extends FragmentStatePagerAdapter{

Fragment returnFragment;
WeakReference<Fragment> mFirstFragment = new WeakReference<Fragment>(AboutFragment.newInstance());
WeakReference<Fragment> mSecondFragment = new WeakReference<Fragment>(MeetABrotherFragment.newInstance());
WeakReference<Fragment> mThirdFragment = new WeakReference<Fragment>(RushFragment.newInstance());



private AboutFragment fragment1;
private MeetABrotherFragment fragment2;
private RushFragment fragment3;




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



@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            returnFragment = mFirstFragment.get();
            break;
        case 1:
            returnFragment = mSecondFragment.get();
            break;
        case 2:
            returnFragment = mThirdFragment.get();
            break;
        default:
            return null;
    }
    return returnFragment;
}

@Override
public int getCount() {
    return 3;
}

@Override
public CharSequence getPageTitle(int position) {
    if(position == 0){
        return "About Us";
    } else if(position == 1){
        return "Meet a Bro";
    } else{
        return "Rush";
    }
}

Here is my main Activity:

public class MainActivity extends BaseActivity  {

private final String LOG_TAG = MainActivity.class.getSimpleName();

@Bind(R.id.activity_main_viewPager)
ViewPager viewPager;

@Bind(R.id.activity_tab_layout)
TabLayout tabLayout;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(adapter);
    tabLayout.setupWithViewPager(viewPager);

}
}

I've been trying to figure this problem for days now and any help will be appreciated. Thank you guys in advance.

Aucun commentaire:

Enregistrer un commentaire