是时候拥抱ViewBinding了!!

节选自:是时候拥抱ViewBinding了!!


三、拥抱ViewBinding

关于ViewBinding的文档,官方写的很详细,请看视图绑定。本文一切从简,主要说下Google官方没有提到的一些问题。

3.1、环境要求

  • Android Studio版本3.6及以上
  • Gradle 插件版本3.6.0及以上

3.2、开启ViewBinding功能

ViewBinding支持按模块启用,在模块的build.gradle文件中添加如下代码:

android {
        ...
        viewBinding {
            enabled = true
        }
}

3.3、Activity中ViewBinding的使用

//之前设置视图的方法
setContentView(R.layout.activity_main);

//使用ViewBinding后的方法
mBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(mBinding.getRoot());

3.3.1、布局中直接的控件

当我们在布局中添加一个id为tv_text的TextView后,直接在Activity中使用mBinding.tvText即可拿到该控件。如下所示,可以看到也是以控件ID的驼峰命名法来获取的:

mBinding.tvText.setText("是你得不到的ViewBinding");

3.3.2、布局中使用include

mBinding.layoutInclude.tvInclude.setText("这就是你的不对了");

3.4、Fragment中使用ViewBinding

在Fragment的**onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)**方法中:

//原来的写法
return inflater.inflate(R.layout.fragment_blank, container, false);

//使用ViewBinding的写法
mBinding = FragmentBlankBinding.inflate(inflater);
return mBinding.getRoot();

拿到FragmentBlankBinding的对象后,更新数据的都和之前一样了。

发表评论