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.//在这里直接获取控件就没有问题了
}
网友评论