我在Kotlin的嵌套片段中遇到了一些问题。我有ViewModel嵌套的片段。从后退按钮恢复片段后,虽然我的数据没有更改,但再次按下viewModel上的所有观察者LiveData触发器。]
首先,我用谷歌搜索并尝试在字段变量中定义观察者,并检查它是否已初始化,然后不再观察它:lateinit var观察者:观察者
fun method(){ if (::observer.isInitialized) return observer = Observer{ ... } viewModel.x_live_data.observe(viewLifecycleOwner ,observer) }
因此,首先进入片段时它可以正常工作,而且恢复后它不会在没有数据更改的情况下再次触发,但是在数据更改时也不会触发!这是怎么回事?
我在Kotlin的嵌套片段中遇到了一些问题。我有ViewModel嵌套的片段。从后退按钮恢复片段后,尽管我的...
因此,根据Uncle Bob,作为关注点分离的一部分,来自View的事件应移至其他处理程序。在Android中,我们可以将View的第一个联系点视为ViewModel。然后从那里到UseCase,Repo等。
下面是片段类。我正在使用Dispatcher
和Supervisor Job
处理VM中的任务,该VM通过REST API
与其他层通过Coroutines
连接。不知道这种流程是否会对您有所帮助,但还是请看一看。