欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android ViewBinding的使用详解

程序员文章站 2022-09-03 18:50:59
最近android studio 升级后 butterknife 有一个警告:resource ids will be non-final in android gradle plugin versi...

最近android studio 升级后 butterknife 有一个警告:

resource ids will be non-final in android gradle plugin version 5.0, avoid using them as annotation attributes

查看官网发现:

Android ViewBinding的使用详解

butterknife已经弃用,建议使用 替换。

一、什么是view binding

官方介绍:

通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 xml 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 id 的所有视图的直接引用。

在大多数情况下,视图绑定会替代 findviewbyid。

设置说明

  1. android studio 必须是3.6及更高版本。
  2. com.android.tools.build:gradle 需要 3.6.0及更高版本。
  3. build.gradle 中启用功能,不同模块要分别设置。

二、基本用法

activity中使用

在 activity 的 oncreate() 方法中执行以下步骤:

  1. 调用生成的绑定类中包含的静态 inflate() 方法。
  2. 通过调用 getroot() 方法获取对根视图的引用。
  3. 将根视图传递到 setcontentview(),使其成为屏幕上的活动视图。

现在即可使用该绑定类的实例来引用任何视图:

现在即可使用该绑定类的实例来引用任何视图:

fragment 中使用

在 fragment 的 oncreateview() 方法中执行以下步骤:

  1. 调用生成的绑定类中包含的静态 inflate() 方法。
  2. 通过调用 getroot() 方法获取对根视图的引用。
  3. 从 oncreateview() 方法返回根视图,使其成为屏幕上的活动视图。
  4. 在 ondestroyview() 中销毁绑定类。

adapter 中使用

三、了解源码实现

项目运行后,每个布局文件都会生成对应的binding类,比如 activity_main.xml 会生成 activitymainbinding.java 文件,路径如下:

app\build\generated\data_binding_base_class_source_out\debug\out\包名\databinding

代码其实很简单就是加载布局,然后对控件进行初始化:

viewbinding 的源码如下:

可以对代码稍加改造,减少 activity 、fragment 、adapter 中的重复代码。

baseactivity

basefragment

baseadapter

四、其他

如果布局中有使用 <include> 标签,需要给 <include> 设置id,才可以获取到组合控件中的元素。

以上就是android viewbinding的使用详解的详细内容,更多关于android viewbinding的使用的资料请关注其它相关文章!

相关标签: Android ViewBinding