首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略导航()调用: FragmentManager已经保存了它的状态

忽略导航()调用: FragmentManager已经保存了它的状态
EN

Stack Overflow用户
提问于 2018-08-17 12:15:02
回答 5查看 5.9K关注 0票数 20

我在MainActivity中使用MainActivity,然后启动SecondActivity (获取结果)。在完成SecondActivity之后,我想继续使用MainActivity中的导航,但是FragmentManager已经保存了他的状态。

Navigation.findNavController(view).navigate(R.id.action_next, bundle)上,我接收日志消息:

代码语言:javascript
复制
Ignoring navigate() call: FragmentManager has already saved its state

我怎样才能继续航行?

EN

Stack Overflow用户

发布于 2018-11-30 09:18:23

我用这种方法解决了这个问题:

代码语言:javascript
复制
    @Override
public void onActivityResult() { //inside my fragment that started activity for result
        model.navigateToResults = true; //set flag, that navigation should be performed
}

然后

代码语言:javascript
复制
    @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),导航不会出现问题。

票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51895243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档