我目前正在创建一个具有一个根活动的应用程序,并通过替换FrameLayout容器中的片段来更改布局。在我的根活动中,我使用下面的方法来替换片段。我使用此方法导航到登录页面,并使用类似的方法,而不使用addToBackStack进入用户的帐户概述屏幕。当我按下后退按钮,应用程序执行我想要的操作时,它会导航到根视图而不是登录屏幕(因为我没有将其添加到后台堆栈),但是根据片段下方仍然可以看到帐户概述片段。怎么解决这个问题?
我尝试了几种我能找到的解决方案,但未能解决我的问题。奇怪的是,一旦我按下后退按钮,帐户概述片段不会调用onPause / onDestroy或其他任何内容,当我尝试在返回根目录后再次导航到登录页面时,它会执行此操作。就好像它落后于实际的一步,暂停一个视图比它应该更晚。
public void navigateTo(Fragment fragment) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out, R.anim.fade_in, R.anim.fade_out);
transaction.replace(R.id.content_container, fragment);
transaction.addToBackStack("");
transaction.commit();
}