Android 如何处理一次又一次的片段加载

Android 如何处理一次又一次的片段加载,android,Android,在我的应用程序中,我有导航底部和导航上方的容器。我在一个容器中使用多个片段。当我单击导航底部的一个项目时,我将替换要显示的片段 这是我在容器中显示片段的代码 private void showFragment(String tabType) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); baseTabBottomFragment = new BaseTabBottomFragm

在我的应用程序中,我有导航底部和导航上方的容器。我在一个容器中使用多个片段。当我单击导航底部的一个项目时,我将替换要显示的片段

这是我在容器中显示片段的代码

private void showFragment(String tabType) {
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    baseTabBottomFragment = new BaseTabBottomFragment();
    //send data to fragment
    Bundle bundle = new Bundle();
    bundle.putString(KeyConstant.TAB_BOTTOM, tabType);
    baseTabBottomFragment.setArguments(bundle);

    ft.add(R.id.frame_container, baseTabBottomFragment, tabType);
    ft.addToBackStack(tabType);
    ft.commit();
}
但我不知道,当我点击项目导航底部时,它总是一次又一次地加载片段。我想处理它。如果片段已加载,我不想再次加载

请帮帮我


对不起,英语语法

1-您可以使用该标签
tabType
,例如:

String prevTab = "";
private void showFragment(String tabType) {
    if(!tabType.equal(prevTab)){
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    baseTabBottomFragment = new BaseTabBottomFragment();
    //send data to fragment
    Bundle bundle = new Bundle();
    bundle.putString(KeyConstant.TAB_BOTTOM, tabType);
    baseTabBottomFragment.setArguments(bundle);

    ft.add(R.id.frame_container, baseTabBottomFragment, tabType);
    ft.addToBackStack(tabType);
    ft.commit();
   }
  prevTab = tabType;
}
2-或从
BottomNavigationView
中,您可以检查所选项目id,例如:

if(bottomNav.getSelectedItemId()!=R.id.someMenuId)
//替换片段

3-或使用Api 26中的add来了解当前项目是否再次被选中