如何解决在Activity中更改LiveData不会通知子Fragment中的观察者
我正在尝试在承载片段的活动中更新LiveData对象,然后我想在观察片段后更新其UI。问题是片段的ui仅在片段重新启动时才更新。每当活动中的数据发生更改时,我该怎么做才能实现片段中Ui的实时更新?
//活动代码:
def gauss(f,2,5):
^
SyntaxError: invalid syntax
///片段:
transactionViewModel = ViewModelProviders.of(this,providerFactory).get(TransactionViewModel.class);
transactionViewModel.getUserValues();
解决方法
为了实现“ Ui的实时更新”,我建议使用data-binding。
在您的代码中,我认为您正在观察viewModel的不同引用。
尝试投放活动后尝试观察(这里是使用Kotlin)
val myActivity = (requireActivity() as MainActivity)
myActivity.transactionViewModel.viewModel.userValues.observe(getActivity(),userValues -> {
if(userValues.data != null){}//update the ui }
,
片段代码
${styles.productSizes__title}
应该是
transactionViewModel = ViewModelProviders.of(getActivity(),providerFactory).get(TransactionViewModel.class);
viewModel.userValues.observe(getActivity(),userValues -> {
if(userValues.data != null) {
//update the UI
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。