将 Flow & Mortar 与 ViewPager 结合使用

Using Flow & Mortar with ViewPager

我正在使用 Flow 和 Mortar 编写应用程序。当涉及到带标签的视图寻呼机时,我无法弄清楚如何使用它。

我能想到的唯一方法是将ViewPager 屏幕视为单个屏幕,并最终使用Fragments 来构建它。但是使用 Flow & Mortar 的全部意义在于摆脱碎片并简化生命周期。

感谢任何帮助。谢谢。

我想 PagerAdapter 就是您要找的。它过去常常通过覆盖 instantiateItem(ViewGroup, int) 将 View 直接绑定到 ViewPager,而不使用片段。而ViewGroup是ViewPager的一个实例,你可以使用add方法直接添加View。

到目前为止你有发现什么吗?我遇到了同样的情况,我在实现这个时所做的是我将 viewpager 的每个部分都视为一个视图,而不是像 Mortar 中使用的 "screen"。

我基本上为每个部分和他们自己的演示者(定制)实现了我的自定义视图。这确实有效,但我希望我可以在 viewpager 中使用更多来自 Mortar 的概念。

我使用自定义 PagerAdapter 编写了一个代码片段,用于操作 Mortar 屏幕。 你可以找到它 here。但它在当前版本的 Mortar 中已经过时了。希望对您有所帮助:)

我制作了一个视图寻呼机示例,与 Mortar 和 Flow 版本保持同步(基于 Kirill Boyarshinov 的适配器)。
我不会复制答案中的代码,因为它太大而且可读性差(如果它违反了 SO 规则,请告诉我,我会编辑答案)。

查看寻呼机适配器: https://github.com/lukaspili/Mortar-Flow-Dagger2-demo/blob/master/app/src/main/java/com/lukaspili/mortardemo/app/adapter/SlidePagerAdapter.java

包含 viewpager 的屏幕: https://github.com/lukaspili/Mortar-Flow-Dagger2-demo/blob/master/app/src/main/java/com/lukaspili/mortardemo/ui/screen/SlidesScreen.java

屏幕显示为 viewpager 的页面: https://github.com/lukaspili/Mortar-Flow-Dagger2-demo/blob/master/app/src/main/java/com/lukaspili/mortardemo/ui/screen/SlidePageScreen.java