如何解决在 Android 中的自定义 WebView 中使用 ViewModel
我有一个自定义 WebView,我处理其中的几个项目以加载指定的 Java 脚本命令。 此外,我在自定义 WebView 内的 WebViewClient 中有一些逻辑,我不想在我的片段中定义和设置 WebViewClient。 每当从 WebViewClient 调用“onPageFinished”时,我都需要宣布,所以我在我的 WebView 中使用了 LiveData,并在我的片段中观察到了这一点。 这是最佳做法和正确方法吗?
就是这样:
class MyWebView : WebView {
private val _loadPageFinished = MutableLiveData<Boolean>()
val loadPageFinished: LiveData<Boolean> get() = _loadPageFinished
//setWebViewClient
webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView,url: String) {
_loadPageFinished.postValue(true)
}
}
}
在 Fragment 中是这样的:
class MyFragment:Fragment(){
override fun onCreateView(
inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?
): View {
webview.loadPageFinished.observe(viewLifecycleOwner,Observer{
//do something when page loading finished here
})
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。