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来了解当前项目是否再次被选中