android - 使用 MVVM android 进行导航

标签 android mvvm rx-java android-viewmodel android-architecture-navigation

我有一个应用程序使用 Androids ViewModel 类和导航组件在 fragment 之间导航。我将如何处理来自 ViewModel 的导航?我正在使用 RxJava,我正在考虑让 Fragments 监听导航事件,然后以这种方式触发导航。处理这个问题的正常方法是什么?如果有帮助,我也会使用 Dagger 进行依赖注入(inject)。

最佳答案

根据 LiveData with SnackBar, Navigation, and other events blog post :

Some data should be consumed only once, like a Snackbar message, a navigation event or a dialog trigger.

Instead of trying to solve this with libraries or extensions to the Architecture Components, it should be faced as a design problem. We recommend you treat your events as part of your state.

他们详细介绍了 SingleLiveEvent 的使用确保每个 Navigation 事件仅被 Observer 接收一次(即,您的 Fragment 可以访问您的 NavController)。

另一种选择是使用“事件包装器”模型,其中事件必须明确标记为已处理。

关于android - 使用 MVVM android 进行导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51869389/

相关文章:

java - 窗口已经聚焦,忽略我的通知应用程序中 : com. android.internal.view 的焦点增益

java - 对提供向上导航的质疑

android - 如何更改 SearchView 元素的颜色?

c# - ViewModel 的版本控制

android - 将 subscribeOn 与 Retrofit 结合使用

android - RxJava android 链接请求

android - `onBackpressureDrop()` 已使用,但仍抛出 `MissingBackpressureException`

java - 在android中创建一个webm文件

c# - TextBox应该以特定格式显示十六进制文本

c# - MVVM:ViewModel 和业务逻辑连接