Anfänglich gibt das Fragment die entsprechende Listenansicht der ersten und zweiten Registerkarte zurück. Gibt jedoch ein leeres Fragment für die dritte Registerkarte zurück. Wenn ich die erste Registerkarte noch einmal wähle, wird das leere Fragment angezeigt. Kein Problem mit Listadapter . Wenn ich den Adapter in der zweiten Registerkarte einstelle, funktioniert es gut. Das Problem ist mit Mainactivity und in FragmentFragment ist leer, wenn die Registerkarte erneut ausgewählt wird
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) {
}
});
}
}
Fragment
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;
}
}
Add 'viewPager.setOffscreenPageLimit (3);' in 'SwipeMainActivity' –
Dank Mayur Raval. Funktioniert perfekt. – Ana