问题描述
我有一个自定义 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 (将#修改为@)