在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 
   }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...