Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我应该为我的应用程序使用片段或活动吗?_Android_Android Fragments_Android Activity - Fatal编程技术网

Android 我应该为我的应用程序使用片段或活动吗?

Android 我应该为我的应用程序使用片段或活动吗?,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,我知道这个问题可能会被问到很多,但我想得到一个专门针对我正在构建的应用类型的答案。我正在创建一个Android应用程序,它基本上是一个食谱搜索应用程序,允许用户选择配料、食物类别和准备时间,该应用程序将找到适合用户搜索的食谱 成分、类别和时间都有单独的“页面”,我为每个页面创建了一个活动。用户首先选择配料,然后单击“下一步”时,类别活动开始,然后再次单击“下一步”时,准备时间活动出现。然后,当他们单击搜索时,我有另一个结果活动,当用户单击结果中的一个配方时,另一个显示配方的活动开始 因此,我有以

我知道这个问题可能会被问到很多,但我想得到一个专门针对我正在构建的应用类型的答案。我正在创建一个Android应用程序,它基本上是一个食谱搜索应用程序,允许用户选择配料、食物类别和准备时间,该应用程序将找到适合用户搜索的食谱

成分、类别和时间都有单独的“页面”,我为每个页面创建了一个活动。用户首先选择配料,然后单击“下一步”时,类别活动开始,然后再次单击“下一步”时,准备时间活动出现。然后,当他们单击搜索时,我有另一个结果活动,当用户单击结果中的一个配方时,另一个显示配方的活动开始

因此,我有以下活动,其中每个活动按以下顺序开始下一个活动:

  • 辐射活性
  • 分类活动
  • 时间活动
  • 结果性
  • 交互性
我读了一些书,发现我应该用碎片。我的计划是改变我的应用程序,让它有一个标签式的活动,有三个标签,分别是成分、类别和时间,底部有一个搜索按钮,显示在所有三个片段中,允许用户轻松地在标签之间切换,并从他们当前正在查看的标签中搜索。至于结果和展示食谱,我想让他们各自的活动保持原样。搜索按钮启动ResultActivity,单击单个搜索结果启动RecipeActivity并显示用户单击的配方

此外,我还计划添加一个“按配方标题搜索”功能。用户可以使用操作栏中的菜单按钮在这两种搜索模式之间切换。我假设每个搜索模式都必须有一个单独的活动,所以这就是我计划要做的


我的想法正确吗?或者我应该为整个应用程序只做一个活动,而只使用片段来完成其余的活动吗?

对我来说,关于活动或片段的所有决策都与(1)用户体验(2)可管理性(3)跨组件的通信成本等相关

让我举例介绍一些决定

  • 是否需要从外部启动屏幕(共享意图)?
    • 活动
      更好,因为它可以直接从AndroidManifest提供的内容打开
  • 屏幕是否需要逐页查看(配方页)?
    • Fragment
      更好,因为Fragment+ViewPager提供了灵活的分页功能。此外,一些Android设备或主题编辑器会覆盖活动打开效果,所以如果我们以逐个活动的方式实现翻页动画,则翻页动画不会按预期运行
  • 屏幕是否以
    StartActivity
    执行相机或照片意图?
    • Activity
      更好,因为当应用程序从摄像头应用程序还原回来时,
      OnActivityResult
      很难管理内部片段。出于这个原因,“写文章”屏幕可能是一个很好的例子,成为一个单一的活动
  • 无论屏幕打开/关闭(计时器),屏幕是否必须运行?
    • 活动
      更好,因为它可以更快、更轻地显示,而无需进行任何操作
  • 屏幕是否有一种主细节层次结构?
    • Fragment
      更好,因为我们可以准备平板电脑布局
  • 屏幕占用大量内存吗?
    • 活动
      更好,因为我们可以只关注活动,而不是内存使用
  • 屏幕上嵌套的片段是否超过3个深度?
    • 片段
      ,不情愿地。片段之间的通信不稳定,活动片段桥接/舞蹈总是令人头痛。我们可以降低复杂度,但是片段内的活动在片段内的ViewPager中-。。。很难实现可管理性
  • 专业Android开发者建议使用多个
    片段
    和单个
    活动
    ,但我们可以决定创建更多活动,以便于管理和更快理解

    在您的情况下,我希望实现如下组件

    • 带片段的主要活动:成分、类别、配方
    • 带片段的结果性:搜索及其结果是一种主细节视图
    • TimePractivity:在单个活动中运行应该很好
    • RecipeActivity:如果每个配方都有自己的id,并且可以作为永久链接共享,那么你的应用程序可以通过RecipeActivity直接打开配方页面。而且,即使您的应用程序从关闭状态恢复或从另一个应用程序状态切换回来,也最好显示配方

    对我来说,所有关于活动或片段的决策都与(1)用户体验(2)可管理性(3)跨组件的通信成本等相关

    让我举例介绍一些决定

  • 是否需要从外部启动屏幕(共享意图)?
    • 活动
      更好,因为它可以直接从AndroidManifest提供的内容打开
  • 屏幕是否需要逐页查看(配方页)?
    • Fragment
      更好,因为Fragment+ViewPager提供了灵活的分页功能。此外,一些Android设备或主题编辑器会覆盖活动打开效果,所以如果我们以逐个活动的方式实现翻页动画,则翻页动画不会按预期运行
  • 屏幕是否以
    StartActivity
    执行相机或照片意图?
    • Activity
      更好,因为当应用程序从摄像头应用程序还原回来时,
      OnActivityResult
      很难管理内部片段。因此,“写文章”屏幕可能是一个很好的例子