在方向更改时使用kotlinx synthetic时视图为null

问题描述 投票:0回答:1

当且仅当在方向改变之后,myview在viewmodel的观察者中为空

我使用了kotlinx合成的所有视图都被启动但是那些视图抛出了在viewmodel的观察者中访问的null对象异常

这是我的导入

 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

取向改变后

android mvvm kotlin viewmodel android-viewmodel
1个回答
0
投票

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

import kotlinx.android.synthetic.*
© www.soinside.com 2019 - 2024. All rights reserved.