Изначально фрагмент возвращает соответствующий список списка первой и второй вкладки. Но возвращает пустой фрагмент для третьей вкладки. Когда я выбираю первую вкладку, снова появляется пустой фрагмент. Нет проблем с listadapter . Когда я устанавливаю адаптер на второй вкладке, он работает нормально. Проблема с Mainactivity и фрагментФрагмент пуст при переустановке вкладки
Mainactivity
public class SwipemainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener
{
private TextView displayTextView;
public static SwipemainActivity instance;
TabLayout tabLayout;
ViewPager viewPager;
Context context;
FragmentAdapterClass fragmentAdapter;
public static Context getInstance() {
return instance;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipemain);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
instance = this;
tabLayout = (TabLayout) findViewById(R.id.tabs);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setSupportActionBar(toolbar);
tabLayout.addTab(tabLayout.newTab().setText("NEW"));
tabLayout.addTab(tabLayout.newTab().setText("CONFIRMED"));
tabLayout.addTab(tabLayout.newTab().setText("FINISHED"));
fragmentAdapter = new FragmentAdapterClass(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(fragmentAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab LayoutTab) {
viewPager.setCurrentItem(LayoutTab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab LayoutTab) {
}
@Override
public void onTabReselected(TabLayout.Tab LayoutTab) {
}
});
}
}
Фрагмент
public class FragmentAdapterClass extends FragmentStatePagerAdapter {
int TabCount;
public FragmentAdapterClass(FragmentManager fragmentManager, int CountTabs) {
super(fragmentManager);
this.TabCount = CountTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
Tab1 tab1 = new Tab1();
return tab1;
case 1:
Tab2 tab2 = new Tab2();
return tab2;
case 2:
Tab3 tab3 = new Tab3();
return tab3;
default:
return null;
}
}
@Override
public int getCount() {
return TabCount;
}
}
Добавить 'viewPager.setOffscreenPageLimit (3)' в 'SwipeMainActivity' –
спасибо Mayur Раваль. Прекрасно работает. – Ana