美文网首页
ViewBinding的使用

ViewBinding的使用

作者: 爱写代码的小王子 | 来源:发表于2021-09-18 17:34 被阅读0次

首先什么是View Binding?
官方解释是:视图绑定是一项功能,可让您更轻松地编写与视图交互的代码。在模块中启用视图绑定后,它会为该模块中存在的每个 XML 布局文件生成一个 绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。在大多数情况下,视图绑定会替换findViewById.

也就是说view binding能够给每一个布局绑定一个布局类,这样我们就不需要使用findViewById来获取对应的视图了,可以防止一些视图为空的情况导致的错误。

那么如何使用呢?
首先在build.gradle中添加以下代码,Kotlin语言

buildFeatures {
        viewBinding = true
    }

假设你的布局样式如下

<LinearLayout ... >
    <TextView android:id="@+id/name" />
    <ImageView android:cropToPadding="true" />
    <Button android:id="@+id/button"
        android:background="@drawable/rounded_button" />
</LinearLayout>

然后在你需要调用布局控件的地方,也就是布局对应的Activity中的onCreate方法中获取binding,得到root视图,也就是你布局中显示的内容

private lateinit var binding: ResultProfileBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ResultProfileBinding.inflate(layoutInflater)
    val view = binding.root
    setContentView(view)
}

这里需要注意binding中不保存没有设置id的引用,也就是没有保存ImageView的引用,如果在布局中设置了id的控件,可以使用binding.id来调用对应的视图,例如binding.name来调用上面的TextView以及binding.button来调用Button按钮。

相关文章

  • OnClickMe 一款自动生成OnClick代码的插件(2.0

    一. 使用背景 如果没用过ViewBinding, 可以先去了解下. Android ViewBinding的使用...

  • ViewBinding探索

    瞅瞅AS3.6新增ViewBinding 目录 基本使用 查看ViewBinding实现方式 include,me...

  • Android-viewbinding原理

    ViewBinding原理分析 以下是在Activity下使用ViewBinding,布局文件中有两个TextVi...

  • Android-ViewBinding原理

    ViewBinding原理分析 以下是在Activity下使用ViewBinding,布局文件中有两个TextVi...

  • ViewBinding

    抽取用法 结合使用getLayoutId(),ViewBinding

  • ViewBinding使用

    通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML ...

  • Android Jetpack架构组件(五)—ViewBindi

    一、ViewBinding的使用 1、ViewBinding简介 视图绑定是一项功能,可让您更轻松地编写与视图交互...

  • ViewBinding的使用

    首先什么是View Binding?官方解释是:视图绑定是一项功能,可让您更轻松地编写与视图交互的代码。在模块中启...

  • ViewBinding

    ViewBinding 与 findViewById 的区别与使用 findViewById 相比,视图绑定具有一...

  • ViewBinding的封装使用

    在build中添加 BaseActivity的代码如下 activity中的使用 BaseFragment的代码如...

网友评论

      本文标题:ViewBinding的使用

      本文链接:https://www.haomeiwen.com/subject/drrygltx.html