ViewBinding的简单使用
16lz
2022-03-10
Android自家的,又可以省去findviewbyid(),而且Butterknife上大神都已经推荐使用的,还有什么理由不去改写呢
build.gradle
开启viewBinding功能
android {...viewBinding.enabled = true}
上面方法提示过时,更改为下面的方法
android { ... buildFeatures{ viewBinding true }}
Activity 绑定
说明一下,这个是kotlin语法的,java语法的写法差不多,只是语法有些差异
private lateinit var mBinding: ActivityEbookBinding
//有个坑特别说明一下,这里的ActivityEbookBinding不是什么内部类,而是你的layout对应的databinding类,开始一直以为有什么包没有引入呢。
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBinding = ActivityEbookBinding.inflate(layoutInflater) setContentView(mBinding.root)}
java
这里还是放一下java语法的代码吧,省得还没有转到kotlin的朋友看了一头雾水
这里再强调一下,记得将我代码中的ActivityEbookBinding换成你自己 layout 对应的 binding 上,命名规则就是你的layout去掉下划线然后首字母大写然后末尾加上Binding就是了
private ActivityEbookBinding mBinding;
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBinding = ActivityEbookBinding.inflate(getLayoutInflater()); setContentView(mBinding.getRoot());}
调用
mBinding中可以直接根据id找到相应的控件进行操作
mBinding.bookContent.setText("HelloWorld");
这里再记录一个小坑,就是如果你的layout里面控件的id有使用“_”下划线的话,viewbinding也会将它去掉下划线改成驼峰命名,并不是你的控件没有被认到,害我找了半天才想到这一茬。
更多相关文章
- EditText的属性!
- Android(安卓)调用相册 拍照 实现系统控件缩放 切割图片
- android通讯录实例(二)
- EditText
- Android(安卓)样式和主题,style&theme
- Android软键盘弹出时把布局顶上去,控件乱套解决方法
- Android(安卓)ConstraintLayout 约束布局
- android 自定义时间控件
- Android应用标签栏(Tabs)设计