Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

没有Activity下的push #8

Open
Key-CN opened this issue Jan 26, 2021 · 5 comments
Open

没有Activity下的push #8

Key-CN opened this issue Jan 26, 2021 · 5 comments

Comments

@Key-CN
Copy link

Key-CN commented Jan 26, 2021

使用场景比如:带底部导航的模式,下面四个button切换上面的fragment,目前我找了一圈,只看到Ext.kt中有:

val Fragment.navigator
val View.navigator

应该再来一个Activity.navigator

@Key-CN
Copy link
Author

Key-CN commented Jan 26, 2021

我尝试去增加一个Activity下的putFragment,感觉思路好像不对,四个页面同级,可以任意切换,而且不应该存在回退栈。
你觉得应该怎么处理呢?

@vitaviva
Copy link
Owner

  1. 如你所说,如果是ViewPager个页面之间的切换,感觉不需要回退栈管理的话,所以不需要push
  2. 如果是希望在子Fragment中为父级的Stack压栈,可以调用parentFragment.push(...)
  3. 考虑Activity只提供容器,不应该有逻辑,所以就没设计任何扩展方法

@Key-CN
Copy link
Author

Key-CN commented Jan 27, 2021

你说都前两点我觉得都没有问题,第三点不一定,这完全取决于产品的设计逻辑,因为我看你的初衷应该也是想把这个库打造成一个比较通用的库。
我关注到这个库也是因为一直以来使用navigation的痛点,所以经常搜索关注这方面的内容。我自己使用时重写了生命周期,分成一次性渲染和每次onStart都需要渲染两部分。(尤其赞同你replace替换成add)。当看到你这个库的时候,发现你已经做了大部分我想做的功能。瞬间觉得为自己剩下了很多力气。

关于第三点,我提供一种我目前做的产品的UI,就是Activity不仅仅是容器还包含了很多逻辑。我想类似于这种设计的app也不在少数。
image

另外还有一个思考,比如这种4个viewpager,是否也可以直接使用4个栈来管理呢?这样在任何下级页面切换时,都能保留另一个导航内都路径。或者说这样就可以只用一个Fragment容器,而不需要子容器了

@Key-CN
Copy link
Author

Key-CN commented Jan 27, 2021

像这种UI使用一个容器,四个首页就用navigation的global标签(navigation顶层的action)跳转似乎也可以,我看loadRoot生成的destination应该就属于这种不带上级fragment指定路径的action吧

@vitaviva
Copy link
Owner

另外还有一个思考,比如这种4个viewpager,是否也可以直接使用4个栈来管理呢?这样在任何下级页面切换时,都能保留另一个导航内都路径

这个我觉得是靠谱的

看你的产品UI,4个标签卡的切换逻辑是否可以放到HomeFragment,这要就不需要Activity了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants