ViewBinding在Activity、Fragment、Adapter等中的使用!

306 阅读2分钟

引言:今天是第一天写文章,主要还是公司安排的任务完成了。作为刚入职场的新人,新接触和学习的东西是非常多的,当然遇到的问题也不少。这些东西虽然一时记住了,但是难免久了自己还是会忘记,今天有了这个机会,正好可以去完成我这个想法。一是对自己所学习了解的东西做一个经验总结,二是我的经验的分享也可能会帮助到和我遇到一样问题的人。

那么话不多说,进入正题:

1、引入

Android studio从3.6开始,就在Gradle中内置了ViewBinding,因此不需要添加其他的库来引入,只是在Android studio 3.6版本和4.0版本的引入方式有一点变化:

Android studio 3.6的引入方式:build.gradle(app)

android {
    viewBinding {
        enabled = true
    }
}

Android studio 4.0的引入方式:build.gradle(app)

android {
    buildFeatures {
        viewBinding = true
    }
}

到这里引入就完成了,是不是很简单!当然viewBinding的使用也非常简单,我们接着往下看。

2、使用

  • 在Activity中使用,viewBinding的声明一般都采用懒加载

第一种方式:这里需要注意的是viewBinding一定要在setContentView之前初始化哦,因为你想要viewBinding生效,就必须要把 setContentView() 方法中的参数替换为 viewBinding.root 这一点是很多新手程序员所忘记的。如果你在 setContentView() 方法后调用,那你的程序会因为viewBinding没有初始化而崩溃。

image.png

第二种方式:也是懒加载,但是使用起来更加的方便

image.png

刚刚接触的小伙伴可能不清楚 ActivityMainBinding是怎么来的,其实在这里我Activity的名字叫MainActivity,布局文件名字叫activity_main,而ActivityMainBinding就是根据布局文件名字自动生成的。命名规则也就是布局文件名字大驼峰加上Binding后缀完成。

注:在kontlin中,还可以用layoutInflater代替LayoutInflater.from(this)

声明好了之后,就可以通过viewBinding去调用布局文件里面的控件啦:

viewBinding.textView.text = "Hello!"
  • 在Fragment中使用

image.png

  • 在Adapter中使用

image.png

  • 在include中 使用
//布局xml文件
<include
    android:id="@+id/include"
    layout="@layout/item_video"/>
    
//activity中掉调用
viewBinding.include.textView.text = "video"

注:textView是布局文件item_video中的控件

那今天的文章就到此结束啦,若发现有错误的地方,欢迎指出哦!