Android 的 Instagram 是如何构建的?
How is Android's Instagram structured?
我正在构建一个 android 应用程序,虽然它具有完全不同的功能,但与 Instagram 非常相似 UI。有一个带有按钮的底部栏,用于查看时间轴、posting(我的应用程序的内容)、检查通知和查看您自己的个人资料。
我是电气工程专业的四年级学生,但我对 Android 开发还比较陌生。为了更快地自学更多东西,我继续使用我的应用程序的许多功能(例如查看 posts、个人资料、时间线、朋友等)他们自己的活动和他们自己的底部栏(现在只是按钮)。在这样做的过程中,我学到了很多关于开发的知识,并构建了一个应用程序,就我目前构建的内容而言,它可以正常运行,但不是太快或太漂亮。我意识到这可能不是最佳做法,我想问大家,您认为如何简单解释如何实现类似 Instagram 的 UI 是什么?当我说类似 Instagram 时,我的主要意思是:它包含一个底栏;用户所在的应用程序 "preserves",比如如果我正在从时间线上查看朋友,然后按下查看个人资料按钮,然后再次按下时间线,那么我仍然会看到我的朋友。
我已尝试尽可能多地阅读以解决重新设计问题,但我对执行类似 this.Should 的标准仍然有点模糊 我尝试 TabHost(已弃用)?每个按钮是否应该代表一个具有可交换视图的 activity(例如,在 IG 中,我在我的时间轴上单击一个 post,它会交换到图片 post 视图)?我是否应该将 activity 与每个按钮相关联并根据用户导航的位置交换片段?我意识到这是一个开放式问题,我希望 Stack Overflow 不会太含糊,但我已经考虑了很多,我会感谢一些更有经验的开发人员的反馈!谢谢!
您可以使用支持设计库中包含的新 TabLayout 以及视图分页器在不同片段之间切换。
编辑:在评论中我提到了一个类比,让你思考如何使用片段与活动。为了不传播错误信息,我要反驳我所说的话。您完全可以使用单独的活动并使用选项卡在它们之间切换。所以,正确答案是介于两者之间。 MainActivity 仍将保存 tablayout 并管理选项卡侦听器并在选项卡之间切换,但您可以设置 tablayout 的内容以保存新的内容 activity。但是你也可以用片段来做,而且可能更有效。
这实际上取决于您应用的结构及其深度。如果您只有 4 个片段并且信息以一个工作流程为中心,那么您可能会选择只使用一个 activity 和四个片段。如何管理它实际上取决于开发人员。
自从 fragments 出来后,一种理念是如果你正在使用的 space 可以重新利用,也就是说,如果你在同一个盒子里工作(标签栏上方的区域)例如 instagram 应用程序),使用片段。 (引用自 here)。相机选项卡是使用 activity 的一个很好的例子。相机功能代表了一个与浏览 Instagram 应用程序的提要、图片和配置文件时所看到的完全不同的工作流程。所以提要可能是一个片段,用户配置文件是另一个片段,但它们都由同一个 activity 管理并使用相同的内容框架。
我上面提供的参考资料中还有其他答案,应该有助于您进一步理解。
我正在构建一个 android 应用程序,虽然它具有完全不同的功能,但与 Instagram 非常相似 UI。有一个带有按钮的底部栏,用于查看时间轴、posting(我的应用程序的内容)、检查通知和查看您自己的个人资料。
我是电气工程专业的四年级学生,但我对 Android 开发还比较陌生。为了更快地自学更多东西,我继续使用我的应用程序的许多功能(例如查看 posts、个人资料、时间线、朋友等)他们自己的活动和他们自己的底部栏(现在只是按钮)。在这样做的过程中,我学到了很多关于开发的知识,并构建了一个应用程序,就我目前构建的内容而言,它可以正常运行,但不是太快或太漂亮。我意识到这可能不是最佳做法,我想问大家,您认为如何简单解释如何实现类似 Instagram 的 UI 是什么?当我说类似 Instagram 时,我的主要意思是:它包含一个底栏;用户所在的应用程序 "preserves",比如如果我正在从时间线上查看朋友,然后按下查看个人资料按钮,然后再次按下时间线,那么我仍然会看到我的朋友。
我已尝试尽可能多地阅读以解决重新设计问题,但我对执行类似 this.Should 的标准仍然有点模糊 我尝试 TabHost(已弃用)?每个按钮是否应该代表一个具有可交换视图的 activity(例如,在 IG 中,我在我的时间轴上单击一个 post,它会交换到图片 post 视图)?我是否应该将 activity 与每个按钮相关联并根据用户导航的位置交换片段?我意识到这是一个开放式问题,我希望 Stack Overflow 不会太含糊,但我已经考虑了很多,我会感谢一些更有经验的开发人员的反馈!谢谢!
您可以使用支持设计库中包含的新 TabLayout 以及视图分页器在不同片段之间切换。
编辑:在评论中我提到了一个类比,让你思考如何使用片段与活动。为了不传播错误信息,我要反驳我所说的话。您完全可以使用单独的活动并使用选项卡在它们之间切换。所以,正确答案是介于两者之间。 MainActivity 仍将保存 tablayout 并管理选项卡侦听器并在选项卡之间切换,但您可以设置 tablayout 的内容以保存新的内容 activity。但是你也可以用片段来做,而且可能更有效。
这实际上取决于您应用的结构及其深度。如果您只有 4 个片段并且信息以一个工作流程为中心,那么您可能会选择只使用一个 activity 和四个片段。如何管理它实际上取决于开发人员。
自从 fragments 出来后,一种理念是如果你正在使用的 space 可以重新利用,也就是说,如果你在同一个盒子里工作(标签栏上方的区域)例如 instagram 应用程序),使用片段。 (引用自 here)。相机选项卡是使用 activity 的一个很好的例子。相机功能代表了一个与浏览 Instagram 应用程序的提要、图片和配置文件时所看到的完全不同的工作流程。所以提要可能是一个片段,用户配置文件是另一个片段,但它们都由同一个 activity 管理并使用相同的内容框架。
我上面提供的参考资料中还有其他答案,应该有助于您进一步理解。