我知道这个问题可能会被问到很多,但我想得到一个专门针对我正在构建的应用程序的答案。我正在创建一个Android应用程序,它基本上是一个食谱搜索应用程序,允许用户选择成分,食物类别和准备时间,应用程序将找到适合用户搜索的食谱。
有关于成分,类别和时间的单独“页面”,我已经为每个创建了一个活动。用户首先选择成分,然后当他们单击“下一步”时,将启动类别活动,然后再单击“下一步”时,将启动准备时间活动。然后当他们点击搜索时,我有另一个结果活动,当用户点击结果中的一个食谱时,另一个用于显示食谱的活动开始。
所以我有以下活动,其中每个活动按以下顺序开始下一个活动:
我做了一些阅读,发现我应该使用片段。我的计划是更改我的应用程序,以便它有一个标签式活动,其中包含三个选项卡,用于分析,分类和时间,底部有一个搜索按钮,显示在所有三个片段中,这样用户可以在标签和搜索之间轻松切换从他们目前正在查看的任何标签。至于结果和显示食谱,我想留下他们各自的活动。 “搜索”按钮启动ResultActivity,单击单个搜索结果将启动RecipeActivity并显示用户单击的配方。
另外,我打算添加“按食谱标题搜索”功能。用户可以使用操作栏中的菜单按钮在这两种搜索模式之间切换。我假设每个搜索模式都必须有一个单独的活动,所以这就是我打算做的。
我的想法是正确的方法吗?或者我应该只对整个应用程序进行一次活动,并且只使用片段完成剩下的活动吗?
答案 0 :(得分:11)
对我来说,关于 Activity或Fragment 的所有决定都与(1)UX(2)可管理性(3)组件间的通信成本等有关。
让我通过例子介绍一些决定。
Activity
更好,因为它可以直接从AndroidManifest提供。Fragment
更好,因为Fragment + ViewPager提供灵活的分页功能。此外,一些Android设备或主题编辑器会覆盖活动开放效果,因此如果我们以“逐个活动”的方式实现页面转动动画,则不会按预期运行。StartActivity
执行相机或照片意图?
Activity
更好,因为当应用从相机应用恢复时,OnActivityResult
难以管理内部片段。出于这个原因,"撰写帖子"屏幕可以是单个活动的一个很好的例子。Activity
更好,因为它可以在没有Activity-Fragment dancing的情况下更快更亮。Fragment
更好,因为我们可以准备平板电脑布局。Activity
更好,因为我们可以专注于活动而不是内部碎片内存使用。专业Android开发人员建议使用多个Fragment
和单Activity
,但我们可以决定创建更多活动,以便于管理和更快地理解。
在您的情况下,我想实现如下组件。