做出这样的Android应用程序向导(Make a wizard like application

2019-06-23 14:35发布

你觉得做这样的应用程序向导的最佳方式(用户具有向前和后退按钮屏幕之间可以导航,每个屏幕有保存一些状态数据)的Android平台。

我主要是能想到的两种方法:

  1. 具有一个活动+视图每个屏幕,然后我通过调用每个活动使屏幕切换。 是什么让这个可爱的是,我可以使用系统恢复按钮,我的背部处理器和我不必采取照顾自己,ASLO每次活动必救了自己的状态。

  2. 有一个活动,很多意见,我切换视图中的每个画面的变化是什么,这有助于我重新使用更多的代码,但使保存状态一塌糊涂。

你怎么看? 这是在Android这样做的最佳方式?

Answer 1:

我建议用2作为去适应它的活动和观点的目的。 在这种情况下,保存状态很简单 - 如果你使用MVC模式,你可以简单地有沿的意见传递模型对象。 每个视图将具有它可以读/写的模型的部分。 无论你在哪里,模型应该总是当前状态。 如果你得到安置,只是保存模型。 恢复自动既然你已经从模型看,当你在每个网页的作品。



Answer 2:

我已经开发了一个轻量级的Android库,它是建立在Android的ViewPager的顶部,可以用于类似活动创建向导。 检查出来: WizarDroid 。



Answer 3:

我已经与第一种方法,因为它似乎更自然。 另一个应用程序使用ViewFlipper用于切换视图,但是,从精灵一样的东西远。



Answer 4:

我认为2是更好的。 放入视图中的每个“页”,然后在显示和隐藏在它们之间只是交替。 使得它容易做到很好的过渡。 你想保持什么状态? 不能自动工作的唯一一个将被集中,我想你大概要重置你每次切换页面。 如果你认为这是你的应用程序的正确的行为,也是微不足道的捉回。

1您可以重用几乎所有的代码(只是定义自己的WizardBase类),但我认为活动是很慢启动(且需要更多内存),比视图之间切换。



Answer 5:

9年前,这是明显的鱼非常不同的水壶 - 但我认为现在要做到这一点的最好办法是用碎片。

有一个片段为每“页”向导,让它处理自己的生命周期和状态。

从与每个片断中更改页面Fragment.getFragmentManager() -这将返回从父活动的FragmentManager,使片段来代替自己。



文章来源: Make a wizard like application in Android