Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 为什么生成的ViewDataBinding类将“include”标记的属性注释为Nullable大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Android数据绑定库来绑定具有< include>的xml布局

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://scheR_543_11845@as.android.com/apk/res/android">

    <data>
        <variable
            name="model"
            type="com.example.Myviewmodel" />
    </data>

    ...

    <include
        layout="@layout/someOtherLayout"
        android:id="@+id/includedLayout" />
    ...

</layout>

在为xml生成的Databinding类中,我看到了这个属性

@Nullable
public final com.example.databinding@L_720_4@meOtherLayoutBinding includedLayout;

为什么注释为@Nullable? < include>在布局中,正如我所看到的,它显然是非空的.我错过了什么?

它迫使我使用非null断言操作符!!在访问包含布局的字段时在Kotlin代码中,我想知道它是否安全或者是否有什么我不在这里

val binder = DataBindingUtil.bind(view)
val someView = binder.includedLayout!!@L_720_4@meView

解决方法

对于最新版本的数据绑定编译器(3.1.0)来解决包含布局的可空绑定的问题,您可以设置

android.databinding.enableV2 =真

在项目内的gradle.properties文件中.

之后,您需要调用重建.之后,所有包含的布局绑定都将使用@NonNull注释进行标记.

大佬总结

以上是大佬教程为你收集整理的android – 为什么生成的ViewDataBinding类将“include”标记的属性注释为Nullable全部内容,希望文章能够帮你解决android – 为什么生成的ViewDataBinding类将“include”标记的属性注释为Nullable所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。