0

Ich benutze eine Navigation unten mit 5 Fragmenten.wie man Offscreen-Seitenlimit in der unteren Navigation verwenden

Jedes Fragment ruft einen HTTP-Aufruf ab und lädt Inhalte herunter, aber beim Ersetzen des Fragments wird die Ansicht zerstört und erneut heruntergeladen.

In meiner Suche fand ich heraus, dass ich setOffscreenseiteLimit diese Methode verwenden sollte, aber ich benutze nicht Viewpager.

Wie könnte ich so etwas implementieren?

Antwort

0

Anstatt Fragmente zu ersetzen, fügen Sie dem Fragmentmanager Fragmente hinzu und zeigen/verbergen sie.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_page); 

    addFragmentsToManager(); 
} 

private void addFragmentsToManager() { 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = 
       fragmentManager.beginTransaction(); 
    fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out); 

    fragmentTransaction.add(R.id.flContent, tripFragment, 
      tripFragment.getClass().getSimpleName()); 
    fragmentTransaction.add(R.id.flContent, notificationFragment, 
      notificationFragment.getClass().getSimpleName()); 
    fragmentTransaction.add(R.id.flContent, searchFragment, 
      searchFragment.getClass().getSimpleName()); 
    fragmentTransaction.add(R.id.flContent, profileFragment, 
      profileFragment.getClass().getSimpleName()); 

    fragmentTransaction.hide(tripFragment); 
    fragmentTransaction.hide(notificationFragment); 
    fragmentTransaction.hide(searchFragment); 
    fragmentTransaction.hide(profileFragment); 
    fragmentTransaction.commit(); 
} 

private void changeTab(int position) { 
    Fragment fragment; 
    switch (position) { 
     fragment = .....// get framgnet from position 
    } 

    FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = 
       fragmentManager.beginTransaction(); 
    fragmentTransaction.setCustomAnimations(R.anim.fade_in, 
       R.anim.fade_out); 

    fragmentTransaction.hide(prvFragment); 
    fragmentTransaction.show(fragment).commit(); 
    prvFragment = fragment; 
} 
Verwandte Themen