美文网首页
navigation搭配webview返回会重新加载的解决办法

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

作者: 克罗克达尔 | 来源:发表于2021-09-14 16:20 被阅读0次

因为在项目里面使用了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
    }
}

问题解决

相关文章

网友评论

      本文标题:navigation搭配webview返回会重新加载的解决办法

      本文链接:https://www.haomeiwen.com/subject/zobcgltx.html