kotlin的支持性不是很好
Opened this issue · 0 comments
ilovexy2tom commented
项目中使用了kotlin
并且使用了kotlinx.android.synthetic
这样就会导致一个问题,当使用statusLayoutManager.showLoading()的时候,原布局的id直接就找不到了
直接就空指针异常了,因为子布局是webView,而我需要在webView加载完毕后,showSuccesLayout()
如果showSuccesLayout()放在加载完成,原布局id就会直接报空指针
核心代码
mWebView.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView, newProgress: Int) {
if (mProgressBar != null) {
if (newProgress >= 99) {
mProgressBar?.visibility = View.GONE
mStatusLayoutManager.showSuccessLayout()
} else {
mProgressBar?.visibility = View.VISIBLE
mProgressBar?.progress = newProgress
}
}
}
}
时序步骤为
init()
showLoadingLayout()
requestHttp()
onResponse()
loadHtml() --闪退就在此处,除非在此之前增加showLoadingSuccess(),但此时webView还没有加载完成,内容会不断的闪动。
所以不知道有没有别的解决方案,不要removeView(),能不能将替换的View只是简单的Gone,然后add状态的Layout,success的时候再restore。不知道是否可行?