0

私は5つのフラグメントでナビゲーションの底部を使用しています。ボトムナビゲーションに設定されたオフスクリーンページの制限の使用方法

各フラグメントはHTTP呼び出しとコンテンツのダウンロードを行いますが、フラグメントを置き換えながらビューは破棄され、再びダウンロードされます。

私の検索では、setOffscreenPageLimitこのメソッドを使用する必要があることがわかりました しかし、私はviewpagerを使用しません。

どうすればこのようなことを実装できますか?

答えて

0

フラグメントを置き換える代わりに、フラグメントマネージャにフラグメントを追加して表示/非表示にします。

@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; 
} 
関連する問題