I have three tabs, in one tab I request data form backend. When re click this tabs, it reload again. I want when I reload fragment not recreate, all things in listView in memory. My code like this:
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment = null;
switch (item.getItemId()) {
case R.id.navigation_home:
fragment = FirstFragment.newInstance();
break;
case R.id.navigation_dashboard:
fragment = SecondFragment.newInstance();
break;
case R.id.navigation_notifications:
fragment = ThreeFragment.newInstance();
break;
}
if (fragment != null) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content, fragment);
fragmentTransaction.commit();
}
return true;
}
});
But when I Symtems.print.out I see result: - Tab1 clicked
I/System.out: onCreate main
I/System.out: onAttach 1
I/System.out: onCreate 1
I/System.out: onCreateView 1
I/System.out: onResume main
I/System.out: onResume 1
-Tab2 clicked
I/System.out: onAttach 2
I/System.out: onCreate 2
I/System.out: onDetach 1
I/System.out: onCreateView 2
I/System.out: onResume 2
-Reclick tab 1:
I/System.out: onAttach 1
I/System.out: onPause 2
I/System.out: onDetach 2
I/System.out: onCreateView 1
I/System.out: onResume 1
when reclick a tabs all fragment lifecyle run again therefor my code load backend run again. How I can keep something like fragment onPause when orther tabs click and OnResume when it click again?.