Android视图绑定ViewBinding的使用

Android视图绑定ViewBinding的使用

概述

在我们的开发过程中需要获取XML布局文件中的ViewId以便其赋值显示,所以我们习惯了使用findViewById进行操作

Android Studio 3.6 开始,视图绑定能够通过生成绑定对象来替代 findViewById,从而可以帮您简化代码、移除 bug,并且从findViewById 的模版代码中解脱出来。

build.gradle中开启视图绑定

开启视图绑定无需引入任何额外依赖,从Android Studio 3.6开始,视图绑定将会内建于Anroid Gradle插件中。需要打开视图绑定的话只需要在build.gradle文件中配置viewBinding选项

1
2
3
4
5
6
// 需要 Android Gradle Plugin 3.6.0
android {
viewBinding {
enabled = true
}
}

Android Studio 4.0中,viewBinding变成属性被整合到了buildFeatures选项中所以配置要改正;

1
2
3
4
5
6
// Android Studio 4.0
android {
buildFeatures {
viewBinding = true
}
}

配置完成后,视图绑定就会为所有布局文件自动生成对应的绑定类。无需修改原有的XML布局文件,视图绑定将根据你现有的布局自动完成所有工作。

视图绑定将会根据现有的XML布局文件,为Module内所有的布局文件生成绑定对象。

Activity中使用视图绑定

假设你有一个布局文件叫做activity_main.xml,开启视图绑定后就会自动生成相应的ActivityMainBinding绑定类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package io.pure.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import io.pure.myapplication.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//通过调用生成的绑定类中包含的静态 inflate() 方法,创建该绑定类的实例以供 Activity使用
binding = ActivityMainBinding.inflate(getLayoutInflater());
//调用 getRoot() 方法获取对根视图的引用 将根视图传递到 setContentView() 使其成为屏幕上的活动视图
setContentView(binding.getRoot());
//获取控件ID并执行操作
binding.textView01.setText("Hello World");
}

}

image-20210225200047263

作者

pure

发布于

2021-02-25

更新于

2021-07-12

许可协议

评论