Android ViewBinding的使用详解
最近android studio 升级后 butterknife 有一个警告:
resource ids will be non-final in android gradle plugin version 5.0, avoid using them as annotation attributes
查看官网发现:
butterknife已经弃用,建议使用 替换。
一、什么是view binding
官方介绍:
通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 xml 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 id 的所有视图的直接引用。
在大多数情况下,视图绑定会替代 findviewbyid。
设置说明
- android studio 必须是3.6及更高版本。
- com.android.tools.build:gradle 需要 3.6.0及更高版本。
- build.gradle 中启用功能,不同模块要分别设置。
二、基本用法
activity中使用
在 activity 的 oncreate() 方法中执行以下步骤:
- 调用生成的绑定类中包含的静态 inflate() 方法。
- 通过调用 getroot() 方法获取对根视图的引用。
- 将根视图传递到 setcontentview(),使其成为屏幕上的活动视图。
现在即可使用该绑定类的实例来引用任何视图:
现在即可使用该绑定类的实例来引用任何视图:
fragment 中使用
在 fragment 的 oncreateview() 方法中执行以下步骤:
- 调用生成的绑定类中包含的静态 inflate() 方法。
- 通过调用 getroot() 方法获取对根视图的引用。
- 从 oncreateview() 方法返回根视图,使其成为屏幕上的活动视图。
- 在 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的使用的资料请关注其它相关文章!
上一篇: vue-cli中实现响应式布局的方法
下一篇: Oracle中的基础数据类型