当前情况:
困扰我的是
我可以在WebView内转发网页,但是当我按Back返回WebView内时,即是NavController句柄,将片段弹出。
由于WebView不在片段内,所以不是活动,这意味着没有称为onBackPressed()
的方法可以覆盖。
参考:
答案 0 :(得分:1)
据我了解,您需要一种处理片段上的onBackPressed
的方法,对吗?使用NavigationComponent
,您可以在onViewCreated
中做到这一点:
requireActivity().onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
view.findNavController().popBackStack(R.id.dest, false)
}
}
})
答案 1 :(得分:0)
您可以使用mWeb.goBack();返回上一页或返回。
答案 2 :(得分:0)
添加一个新片段,并在其中放置WebView,使用导航编辑器从WebViewFragment导航到新片段,在导航编辑器的右侧,您可以看到一个选项以Backstack选项进行管理。