hegaojian / JetpackMvvm

:chicken::basketball:一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
https://github.com/hegaojian/JetpackMvvm
Apache License 2.0
3.15k stars 614 forks source link

希望和作者讨论一下关于Navigation 的问题 #35

Closed ppg408331701 closed 4 years ago

ppg408331701 commented 4 years ago

最近项目已经快完工了。但是在这段时间的开发中发现Navigation 在某些需求上会有一些缺陷。

项目内集成了网易云信,作为即时IM的库。网易提供了一个UI库,其中【聊天会话】是一个Activity。这就很尴尬了。

目前使用Navigation 的时候。app基本就是一个MainActivity。然后在上面加了一个mainfragment+viewpager2.

在从mainfragment跳转到【聊天会话Activity】后。如果就只在【聊天会话Activity】一个页面还好。但是出现了一个十分难办的需求。

【聊天会话Activity】 ---> productFragment——>favoriteFragment 这种聊天过程中点击某个对话气泡跳转的具体页面的需求。

productFragment和favoriteFragment都是在MainActivity上面Navigation导航图内的页面。

目前我只能新建了一个【TempActivity+tempFragment】,再在上面弄一个Navigation导航图,把productFragment和favoriteFragment复制一份添加上去。

然后形成了【MainActivity+mainfragment】---->【聊天会话Activity】--->【TempActivity+tempFragment】

这样变扭的形式。

老实说我知道这样的实现很蠢,但是确实遇到了这个难题。

目前只能打算在项目上线之后再慢慢把【聊天会话Activity】用fragment实现,纳入【MainActivity+mainfragment】的体系。

不知道如果是作者你遇到这种情况,会怎么处理

hegaojian commented 4 years ago

我也是会按照你这种方法去实现的,多个Activity跳转相同的Fragment时,navigation的单Activity设计模式在这种场景上就有缺陷了,暂时没想到其他更好的办法去解决

ppg408331701 commented 4 years ago

非常感谢。目前这个app还只是体量比较小的app。勉强还能这样用。 公司的下一个app是属于一个复杂的app。主要是糅杂了信息展示,商场、vr、聊天、在线课堂等等,这种app不得不接入各种第三方的activity。下一个项目我不打算用navigation了。感觉局限性有点大。除非以后navigation支持多Activity