我试图控制用户单击同一菜单项的时间,当在同一项目中脉动时,该片段将添加到BackStack。

每次都会产生相同屏幕的负载。

此外,只要后退按钮中的脉冲向我显示相同的屏幕。

FragmentManager manager = getSupportFragmentManager();
boolean fragmentPopped = manager.popBackStackImmediate(fragmentTag, 0);
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

if (!fragmentPopped){
    fragmentTransaction.replace(R.id.content_frame, fragment, fragmentTag);
}

fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragmentTransaction.addToBackStack(fragmentTag);
fragmentTransaction.commit();
this.currentTag = fragmentTag;


这是我的代码。

任何想法?

谢谢

最佳答案

最后,我解决了它,检查该片段是否不为null以及是否为真,我不addToBackStack

Fragment f = getSupportFragmentManager().findFragmentByTag(fragmentTag);
if(f != null) {
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.content_frame, fragment, fragmentTag).commit();
}else{
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.content_frame, fragment, fragmentTag);
    ft.addToBackStack(fragmentTag);
    ft.commit();
}
    }

10-04 17:02