Android中如何禁用Data Binding生成带ID的View实例?
如何禁用Data Binding自动生成所有带ID View字段的功能
嘿,刚好我之前也碰到过类似的需求,结合你的使用场景给你两个实用方案:
方案1:完全禁用Data Binding(推荐,如果你不需要它的核心功能)
既然你已经在使用View Binding的按需绑定特性,而Data Binding自动生成全ID字段的功能对你来说完全是冗余的,那最干脆的方式就是直接关闭Data Binding,只保留View Binding。
在你的模块级build.gradle(或build.gradle.kts)里修改配置:
android { // ... 其他原有配置 buildFeatures { dataBinding false // 关闭Data Binding viewBinding true // 保留View Binding的按需绑定 } }
这样Data Binding就不会再遍历整个视图层级生成所有带ID的View字段了,完全用View Binding的按需绑定逻辑来替代,也更贴合你追求性能的需求。
方案2:保留Data Binding但忽略指定View的字段生成
如果你还需要用到Data Binding的其他特性(比如双向绑定、布局表达式等),可以给不需要生成绑定字段的单个View添加tools:viewBindingIgnore="true"属性,跳过该View的字段生成:
<TextView android:id="@+id/non_critical_text" tools:viewBindingIgnore="true" android:layout_width="wrap_content" android:layout_height="wrap_content" />
这个方法适合只需要忽略少数View的场景,但如果要处理大量View的话,方案1显然更高效省心。
另外补充一句:Kotlin的View Binding和Data Binding可以共存,但如果不需要Data Binding的专属功能,共存反而会增加编译和运行时的额外开销,所以优先推荐方案1哦。
内容的提问来源于stack exchange,提问作者Mohib Irshad
相关产品推荐
相关产品推荐

