Kotlin中Fragment 控件初始化报错 XXX must not be null

Android Extensions在Fragment中遇到的问题
在Fragment中使用Android Extensions来查找使用控件的时候遇到该控件为空的异常:

 java.lang.IllegalStateException: rcvOrders must not be null

该View为空的原因,是在onCreateView中查找了控件,这时候我们inflate的View还没有返回,所以会找不到这个相应的控件。而这在我们通常所提取的BaseFragment的继承方法中很常见。(因为一般Fragment的init方法也放在了onCreateView中)
解决方法:
在onViewCreated(注意是onViewCreated而不是onCreateView)函数中使用Id直接调用:

override fun onViewCreated(view: View,
 savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        rcvOrders.//在这里直接获取控件就没有问题了
    }

转载自 https://juejin.im/post/5b07ab9251882538bd5528d1

猜你喜欢

转载自blog.csdn.net/wfs31415926/article/details/85318743