kotlin recycler_view must not be null

简介: kotlin recycler_view must not be null

报错

recycler_view must not be null


解析

找不到recycler_view?


override fun initView() {
        recycler_view.layoutManager = LinearLayoutManager(mContext)
    }

就上面这一行很简单的代码,居然提示找不到recycler_view,难道是kotlin-android-extensions插件的问题?不可能啊,别的地方是可以的啊,唯一的差别就是recycler_view是在fragment中调用,别的是在activity调用而已,难道是这个时候view还没有创建吗?亦或是创建中?


验证

为了验证这个想法,分别在onActivityCreated和onViewCreated中做了打印和修改背景颜色的操作


override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        initView()
        initData()
    }



结论

运行发现,以上两个方法都是执行的,结论得出,我们通常把initView方法写在onCreateView方法中,但是这个时候view可能并没有返回,所以就找不到了,所以我们可以把初始化操作放在onActivityCreated或onViewCreated中


override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        initView()
        initData()
    }


目录
相关文章
|
4月前
|
存储 前端开发 测试技术
Android Kotlin中使用 LiveData、ViewModel快速实现MVVM模式
使用Kotlin实现MVVM模式是Android开发的现代实践。该模式分离UI和业务逻辑,借助LiveData、ViewModel和DataBinding增强代码可维护性。步骤包括创建Model层处理数据,ViewModel层作为数据桥梁,以及View层展示UI。添加相关依赖后,Model类存储数据,ViewModel类通过LiveData管理变化,而View层使用DataBinding实时更新UI。这种架构提升代码可测试性和模块化。
177 2
|
4月前
|
Android开发
Android面试题之View的invalidate方法和postInvalidate方法有什么区别
本文探讨了Android自定义View中`invalidate()`和`postInvalidate()`的区别。`invalidate()`在UI线程中刷新View,而`postInvalidate()`用于非UI线程,通过消息机制切换到UI线程执行`invalidate()`。源码分析显示,`postInvalidate()`最终调用`ViewRootImpl`的`dispatchInvalidateDelayed`,通过Handler发送消息到UI线程执行刷新。
53 1
|
5月前
|
Android开发 Kotlin
Android面试题 之 Kotlin DataBinding 图片加载和绑定RecyclerView
本文介绍了如何在Android中使用DataBinding和BindingAdapter。示例展示了如何创建`MyBindingAdapter`,包含一个`setImage`方法来设置ImageView的图片。布局文件使用`<data>`标签定义变量,并通过`app:image`调用BindingAdapter。在Activity中设置变量值传递给Adapter处理。此外,还展示了如何在RecyclerView的Adapter中使用DataBinding,如`MyAdapter`,在子布局`item.xml`中绑定User对象到视图。关注公众号AntDream阅读更多内容。
94 1
|
XML Java Android开发
Android——RecyclerView简单实现及Viewbinding优化
本文是博主对Adapter(适配器)的一些理解,为了加深对Adapter的理解以及记录自己的阶段学习而写,同时也适合初学者阅读,参考本条博客的逻辑进行学习。
417 0
|
Android开发 Kotlin
Kotlin学习日志(一)TextView、Button、Toast的使用
Kotlin学习日志(一)TextView、Button、Toast的使用
403 0
Kotlin学习日志(一)TextView、Button、Toast的使用
|
安全
浅析viewBinding和DataBinding
viewBinding 优点 配置 使用 源码解析 DataBinding 配置 创建实体类 创建布局 创建viewModel dataBinding绑定
524 0
浅析viewBinding和DataBinding
DHL
|
存储 算法 安全
如何在项目中封装 Kotlin + Android Databinding
如何在项目中封装 Kotlin + Android Databinding
DHL
317 0
如何在项目中封装 Kotlin + Android Databinding
DHL
|
XML 前端开发 算法
竟然如此简单,DataBinding 和 ViewBinding
ViewBinding 和 DataBinding 为我们解决了这么多问题,但是为什么很多小伙伴们不愿意使用 ViewBinding 和 DataBinding,今天我们从使用的角度来分析。
DHL
581 0
竟然如此简单,DataBinding 和 ViewBinding
DHL
|
设计模式 算法 安全
0xA05 Android 10 源码分析:Dialog加载绘制流程以及在Kotlin、DataBinding中的使用
0xA05 Android 10 源码分析:Dialog加载绘制流程以及在Kotlin、DataBinding中的使用
DHL
413 0
0xA05 Android 10 源码分析:Dialog加载绘制流程以及在Kotlin、DataBinding中的使用