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