三、拥抱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的对象后,更新数据的都和之前一样了。