lel*_*man 6 android kotlin android-databinding
我正在使用 Android 数据绑定库来绑定具有 <include>
布局文件
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="model"
type="com.example.MyViewModel" />
</data>
...
<include
layout="@layout/someOtherLayout"
android:id="@+id/includedLayout" />
...
</layout>
Run Code Online (Sandbox Code Playgroud)
在为 xml 生成的数据绑定类中,我看到了这个属性:
@Nullable
public final com.example.databinding.SomeOtherLayoutBinding includedLayout;
Run Code Online (Sandbox Code Playgroud)
为什么将其注释为@Nullable
?该<include>
是在布局,在我看来,这显然是不为空。我错过了什么?
它迫使我!!
在访问包含的布局的字段时在 Kotlin 代码中使用非空断言运算符,我想知道它是否安全或者是否有我在这里没有考虑的东西
val binder = DataBindingUtil.bind(view)
val someView = binder.includedLayout!!.someView
Run Code Online (Sandbox Code Playgroud)
对于最新版本的数据绑定编译器 (3.1.0),您可以设置包含的布局的可为空绑定来解决该问题
android.databinding.enableV2=true
在项目内的gradle.properties文件中。
之后您需要调用重建。之后,所有包含的布局绑定都将用@NonNull
注释进行标记。
归档时间: |
|
查看次数: |
768 次 |
最近记录: |