Android 的 Instagram 是如何构建的? [关闭]
Posted
技术标签:
【中文标题】Android 的 Instagram 是如何构建的? [关闭]【英文标题】:How is Android's Instagram structured? [closed] 【发布时间】:2015-06-15 21:15:59 【问题描述】:我正在构建一个 android 应用程序,虽然它具有完全不同的功能,但它的 UI 与 Instagram 非常相似。底部栏有用于查看时间线、发布(我的应用程序内容)、检查通知和查看您自己的个人资料的按钮。
我是一名电气工程专业的四年级学生,但我对 Android 开发还比较陌生。为了更快地自学更多东西,我继续使用自己的底栏(只是按钮现在)。在这样做的过程中,我学到了很多关于开发的知识,并构建了一个应用程序,就我目前所构建的而言,它可以按预期运行,但不是太快或太漂亮。我意识到这可能不是最佳实践,我想问大家,您认为如何实现类似 Instagram 的 UI 的简单解释是什么?当我说类似 Instagram 时,我主要是指:它包括一个底栏;该应用程序“保留”用户所在的位置,例如,如果我正在查看时间线中的朋友,然后按下查看个人资料按钮,然后再次按下时间线,那么我仍然会查看我的朋友。
我已尝试尽可能多地阅读以解决重新设计问题,但我对执行此类操作的标准仍然有些模糊。我应该尝试 TabHost(已弃用)吗?每个按钮是否应该代表一个具有可交换视图的活动(例如,在 IG 中,我单击时间轴上的一个帖子,它会切换到图片帖子视图)?我应该将一个活动与每个按钮相关联并根据用户导航的位置交换片段吗?我意识到这是一个开放式问题,我希望它对 Stack Overflow 来说不是太模糊,但我已经考虑了很多,我会感谢一些更有经验的开发人员的反馈!谢谢!
【问题讨论】:
【参考方案1】:您可以使用支持设计库中包含的新 TabLayout 以及视图分页器在不同片段之间切换。
You can read about the TabLayout as well as some of the other things packed in to the design library here.
Reference for TabLayout
edit:在 cmets 中,我提到了一个类比,让您考虑如何使用片段与活动。为了不传播错误信息,我将回过头来兜售我所说的。您绝对可以使用单独的活动并使用选项卡在它们之间切换。所以,正确的答案是在中间的某个地方。 MainActivity 仍将保存选项卡布局并管理选项卡侦听器并在选项卡之间切换,但您可以设置选项卡布局的内容以将内容保存为新活动。但是你也可以用片段来做这件事,而且可能更有效。
这实际上取决于您的应用程序的结构以及它的深度。如果您只有 4 个片段并且信息以一个工作流为中心,那么您可能会选择仅使用一个具有四个片段的活动。如何管理这一点实际上取决于开发人员。
自从碎片出现以来,一种理念是,如果您正在使用的空间可以重新利用,也就是说,如果您在同一个盒子里工作(例如 instagram 应用程序标签栏上方的区域),使用片段。 (引用自here)。相机选项卡是在何处使用活动的一个很好的例子。相机功能代表了一种完全不同的工作流程,与浏览 Instagram 应用程序的提要、图片和个人资料时看到的工作流程完全不同。因此,提要可能是一个片段,而用户配置文件可能是另一个片段,但它们都由相同的活动管理并使用相同的内容框架。
我在上面提供的参考资料中发布了其他答案,这应该有助于您进一步理解。
【讨论】:
谢谢!这听起来正是我正在寻找的。很高兴在最近的开发者博客中看到这种策略。而且我很确定我理解这一切的逻辑。最后一个快速的问题:我想象每个选项卡的侦听器将创建/启动/恢复一个活动,其中包含一个视图寻呼机,它将交换我想要的片段。这有意义吗? 嗯,我不这么认为。将启动活动视为打开新的浏览器窗口。片段更像是在同一个浏览器窗口中更改选项卡。这不是一个 100% 准确的比较,但我认为它明白了这一点。您基本上会有一个主要活动将不同的“选项卡”串在一起,其中每个选项卡都是一个单独的片段,但都由同一个活动管理。有意义吗? 是的!这确实有道理。就我而言,我只想要一个带有四个“标签”(片段)的“窗口”(我的应用程序)。但我还是有点困惑。与浏览器示例保持一致,在 Android 应用程序的上下文中导航到一个选项卡中的不同网页会是什么样子?就像 Instagram 用户在他们的时间线上,然后他们点击朋友的个人资料,他们仍然在标签主机的同一个标签中(就像留在浏览器上的同一个标签中),但他们现在正在查看他们的朋友简介。这是我们有一个片段与另一个片段/视图交换的情况吗? 查看我的编辑以获得澄清。 感谢您的详细说明!作为游戏新手,我非常感谢学习设计理念和一些关于设计趋势的知识,以及技术方法。我将不得不考虑更多。我绝对可以使用片段、ViewPagers 和选项卡进行一些练习。再次感谢您花时间提供帮助!!!以上是关于Android 的 Instagram 是如何构建的? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Android - 我可以在给定的标签上打开 Instagram 应用程序吗?
为啥 Android 版 Instagram 应用可以手动对焦?
如何使用 Instagram 的“TextLayoutView”改进 Android 上的 TextView 渲染