首页 > 解决方案 > 如何返回由 NavHostFragment 控制的 Fragment 内的 WebView?

问题描述

现在的情况:

有什么困扰我:

我可以在 WebView 中转发网页,但是当我按下返回返回 WebView 时,NavController 句柄将其弹出片段。由于 WebView 在片段内而不是活动中,这意味着没有调用方法onBackPressed()来覆盖。

参考:

标签: androidnavigation-drawerandroid-architecture-components

解决方案


据我了解,您需要一种处理onBackPressed片段的方法,对吗?NavigationComponent你可以这样做,在你的onViewCreated

 requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) {
            override fun handleOnBackPressed() {
              if (mWebView.canGoBack()) {
                mWebView.goBack();
             } else {
               findNavController().popBackStack(R.id.dest, false)
             }
            }
        })

推荐阅读