我在MainActivity中使用MainActivity,然后启动SecondActivity (获取结果)。在完成SecondActivity之后,我想继续使用MainActivity中的导航,但是FragmentManager已经保存了他的状态。
在Navigation.findNavController(view).navigate(R.id.action_next, bundle)上,我接收日志消息:
Ignoring navigate() call: FragmentManager has already saved its state我怎样才能继续航行?
发布于 2018-11-30 09:18:23
我用这种方法解决了这个问题:
@Override
public void onActivityResult() { //inside my fragment that started activity for result
model.navigateToResults = true; //set flag, that navigation should be performed
}然后
@Override
public void onResume() { //inside fragment that started activity for result
super.onResume();
if(model.navigateToResults){
model.navigateToResults = false;
navController.navigate(R.id.action_startFragment_to_resultsFragment);
}
}不确定,如果这不是一个可怕的黑客,但它对我有效。此时将恢复FramgentManager状态(onResume),导航不会出现问题。
https://stackoverflow.com/questions/51895243
复制相似问题