目前,谷歌在 Android Studio 3.6 Canary 11 及更高版本中加入了新的视图绑定方式ViewBinding。
ViewBinding 使用:
1在所使用的的module下添加(确保Android studio为3.6以上版本)
android {
..
viewBinding {
enabled = true
}
}
如果在使用的过程中开发者不想为某个布局文件生成binding类在布局中可以添加
<androidx.constraintlayout.widget.ConstraintLayout
…………
tools:viewBindingIgnore="true" >
…………
</androidx.constraintlayout.widget.ConstraintLayout>
编译次module 生成ViewBinding 辅助类

使用方法:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "Test";
private ActivityMainBinding mainBinding ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mainBinding = ActivityMainBinding.inflate(LayoutInflater.from(this));
setContentView(mainBinding.getRoot());
mainBinding.button.setText("我是ViewBinding获取的Button");
mainBinding.showBtn.setText("My name is guoguo ");
}
}
OK 介绍完了使用方法来说说我目前遇到的坑:
1.第一次编译module生成了ActivityMainBinding 但是在运行时报错告诉我找不到ActivityMainBinding 类,汗!
后来我把布局文件所有控件都加了id后解决了,奇葩现在不明白为什么?(持续会复现,今天重复了几次竟然没有复现)
2. 是Button控件set英文自动转大写,
参考:https://blog.youkuaiyun.com/u014309440/article/details/51426462
本文介绍了在Android Studio 3.6及以上版本中引入的ViewBinding特性,详细阐述了如何启用和使用这一功能。然而,在实际应用中,作者遇到了一些问题:1) 编译后找不到生成的ActivityMainBinding类,解决办法是为所有控件添加id;2) Button的英文标题自动转为大写。文章引用了相关资源以寻求解决方案。
1983

被折叠的 条评论
为什么被折叠?



