android - 如何返回由 NavHostFragment 控制的 Fragment 内的 WebView?
问题描述
现在的情况:
- 只有一个活动称为 MainActivity。
- MainActivity 维护着 NavHostFragment。
- 有一个 WebViewFragment 在里面嵌入了一个 WebView。
- Thera 是由 NavHostFragment 控制的许多其他片段。
有什么困扰我:
我可以在 WebView 中转发网页,但是当我按下返回返回 WebView 时,NavController 句柄将其弹出片段。由于 WebView 在片段内而不是活动中,这意味着没有调用方法onBackPressed()
来覆盖。
参考:
解决方案
据我了解,您需要一种处理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)
}
}
})
推荐阅读
- java - Android:如何在通话记录中搜索特定号码
- node.js - MongoDB:$lookup 数组后的 $sum
- python - 在线程中运行机器人文件(对话框)
- c# - 如何在从 Form 派生的类中公开控件的所有属性?
- python - 如果我得到一条随机线,是否有可能得到它下面的第 2 行?
- python - f 字符串仅在 ubuntu 服务器上提供无效的语法错误
- r - 如何拟合加性线性模型数据集厌食症包 MASS R
- python - Numpy,乘法运算?(M[i, j] = a[i] * b[j])
- javascript - 自定义 Chart.js
- android - Android 应用程序是否应该在发送数据之前检查 Wear 是否已连接?