Bakumon/StatusLayoutManager

kotlin的支持性不是很好

Opened this issue · 0 comments

项目中使用了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。不知道是否可行?