问题非常简单.问题在于使用ViewModels,LiveData和其他相关的生命周期感知的arch方法.
我有一个带有NavDrawer的Activity,可以在里面切换片段.
而且我有一个案例,当屏幕上同时出现两个片段时 - 这将是主要的痛苦.One Fragment有一个嵌套的ViewPager Fragments
(不要问为什么).另一个片段只是在用户执行某些操作时从第一个获取信息.这只是通过共享活动视图模型来实现的.但是应用程序本身有很多业务逻辑,随着视图模型越来越大,视图模型越来越大.
我想问的是 - 不是收据或规则如何解决这个问题,或者可能是如何通过修复整个项目结构来解决这个问题.我想问一下建议如何将android.arch.lifecycle样式中的MVVM方法应用于我的用例.
我没有看到更复杂的东西,只是在Fragments之间共享Activity ViewModel.但很常见,那不是治愈方法.
你在这里可以看到什么 - 实际上是一团糟.关键是所有人都在分享ActivityViewModel
.来自FirstFragment的连接(聚合)意味着ViewPager
内部FirstFragment
正在启动,ChildFragments
并且它们也在使用相同的ActivityViewModel
(杀死我).因此,每个人都在使用一个共享的ViewModel.
我的建议是为每个Layer添加一个ViewModel.因此,Activity/Fragments/ChildFragments拥有自己的ViewModels.但是这里出现了什么 - 我们应该如何沟通呢?
可能的解决方案 :
其他解决方法 - 比如DB/SharedPrefs/Realm改变了监听器和事件总线(我太老了:()).
你的解决方案!
我会说以上所有都打破了很多设计原则,所以我该怎么办?我该怎么走出这个烂摊子?这里有什么Uncle Bob
或另一个superhero
可以提供帮助吗?
android mvvm android-fragments kotlin android-architecture-components
我正在尝试使用新的Android架构组件.我想用LiveDataReactiveStreams将Rx Flowable转换为LiveData但是缺少该类.
这是我的依赖项:
compile "android.arch.lifecycle:runtime:1.0.0-alpha1"
compile "android.arch.lifecycle:extensions:1.0.0-alpha1"
kapt "android.arch.lifecycle:compiler:1.0.0-alpha1"
有任何想法吗?