【发布时间】:2019-01-07 15:41:20
【问题描述】:
当且仅当方向改变后,Myview 在 viewmodel 的观察者中为空
我使用 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
方向改变后
【问题讨论】:
-
你尝试过类似 var localUserAvatar = userAvatar;然后在“观察”中使用localUserAvatar?看起来像是复制了闭包,并且使用了这个副本而不是属性“userAvatar”
标签: android mvvm kotlin viewmodel android-viewmodel