navigation搭配webview返回会重新加载的解决办法

2021-09-14  本文已影响0人  克罗克达尔

因为在项目里面使用了Google Jetpack Navigation,在搭配WebView使用的时候出现这样一个问题:


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
    }
}

问题解决

上一篇 下一篇

猜你喜欢

热点阅读