下面是我的xml视图
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/et_user_name"
style="@style/text_bold"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_8sdp"
android:layout_weight="1"
android:backgroundTint="@color/activity_background_color"
android:cursorVisible="false"
android:maxLines="1"
android:imeOptions="actionDone"
android:minHeight="48dp"
android:padding="@dimen/_6sdp"
android:text="@string/guest_user"
android:textColor="@color/text_color_dark"
android:textSize="@dimen/_18sdp" />
下面是我setText方法
mView.etUserName!!.setText(sharePrefHelper.user?.name)
这是mView的初始化
private lateinit var mView: FragmentProfileBinding
mView = FragmentProfileBinding.inflate(inflater)
发生这种情况的一些XML视图大多数视图不可为空,但一些视图显示为可为空,不知道是什么导致了这个问题
1条答案
按热度按时间xlpyo6sf1#
根据视图绑定文档:
零安全:由于视图绑定创建了对视图的直接引用,因此不存在由于无效视图ID而导致空指针异常的风险。此外,当视图仅存在于布局的某些配置中时,绑定类中包含其引用的字段将标记为@Nullable。
如果您的绑定中有一个可以为空的字段,这意味着您有另一个配置(例如,
res/layout-land
或其他文件夹中的一个),该配置不包含具有该android:id
的视图。将带有
android:id
的视图添加到该布局的每个配置后,它将不再是可空的。另一个选项是删除该布局的备用版本,并在所有配置中使用相同的布局。