因为在项目里面使用了Google Jetpack Navigation,在搭配WebView使用的时候出现这样一个问题:
- WebViewFragment跳转到别的页面,返回的时候WebViewFragment里面的WebView重新记载了
对WebViewFragment做了一些改动,代码如下
class WebViewFragment : Fragment() {
private var binding: FragmentWebViewBinding? = null
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
if (binding == null) {
binding = FragmentWebViewBinding.inflate(inflater, container, false)
val url = "https://www.jianshu.com/"
binding?.webView?.loadUrl(url)
}
return binding!!.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding?.webView?.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
view.loadUrl(url)
return true
}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
}
}
binding?.jump?.setOnClickListener {
findNavController().navigate(R.id.action_webViewFragment_to_detailFragment)
}
}
override fun onDestroy() {
super.onDestroy()
binding = null
}
}
问题解决
网友评论