如何在底部导航中使用设置屏幕外页面限制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在底部导航中使用设置屏幕外页面限制相关的知识,希望对你有一定的参考价值。

我正在使用带有5个片段的导航底部。

每个片段都会进行HTTP调用并下载内容,但在替换片段时,视图会被销毁并再次下载。

在我的搜索中,我发现我应该使用setOffscreenPageLimit这个方法,但我不使用viewpager。

我怎么能实现这样的东西?

答案

而不是替换片段,将片段添加到片段管理器并显示/隐藏它们。

@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;
}

以上是关于如何在底部导航中使用设置屏幕外页面限制的主要内容,如果未能解决你的问题,请参考以下文章

在“设置”片段中夸大类PreferenceScreen的错误

重新创建应用时,片段与底部导航视图图标不匹配

在我的“设置”片段中膨胀类 PreferenceScreen 时出错

隐藏子屏幕/片段的android底部导航视图

如何设置主活动中显示的默认片段?

怎么设置滑动返回键