在更改方向时使用kotlinx合成时,视图为null

时间:2019-01-07 15:41:21

标签: android mvvm kotlin viewmodel android-viewmodel

当且仅当方向更改后,Myview在视图模型的观察者中为空

我用kotlinx合成了所有视图,但是这些视图引发了在viewmodel的观察者中访问的空对象异常

这是我的进口货

 import kotlinx.android.synthetic.main.nav_header_story.user_avatar

一切都很好,但是当方向改变时,它将引发空指针异常,但其他视图将在viewmodel的观察者范围内启动

   personInfoViewModel.shortUserInfo.observe(this , Observer {shortInfo ->

       userAvatar.setOnClickListener {

        })

我找不到问题出在哪里,然后尝试了

    userAvatar = nav_view.getHeaderView(0).findViewById(R.id.user_avatar)

并且即使在方向改变后也可以每次访问此功能

    personInfoViewModel.shortUserInfo.observe(this , Observer {shortInfo ->

       userAvatar.setOnClickListener {

        })

我很奇怪

kotlinx.android.synthetic.main.nav_header_story.user_avatar

方向更改后

1 个答案:

答案 0 :(得分:0)

仅导入特定视图时,调用onDestroyView()后不会清除视图缓存。您需要导入整个软件包才能使其正常工作。

import kotlinx.android.synthetic.*