【问题标题】:Using android activities and fragments the right way正确使用android活动和片段
【发布时间】:2015-03-25 22:15:08
【问题描述】:

我需要一些关于我的应用的最佳实践想法。我认为现在的样板代码太多,我不知道我是否以正确的方式使用活动和片段。

有 3 个活动(A、B、C)。该应用程序从 A 开始。我可以导航到 B,这是一个简单的列表,并且每个项目都可以单击以在活动 C 中显示更详细的项目。A 应该是“根”活动,所以我将父活动设置在清单文件。

现在我想在 B 和 C 上有一个 DrawerLayout 导航,它实际上以更小的方式代表 A。

我创建了一个抽象的NavigationActivity 类用于查看活动并将其设置为DrawerLayout 的第一个子级,并将导航添加为第二个子级。这很好用,但是由于导航有一个状态,我将导航嵌入为片段,因为我认为当时状态是共享的,但事实并非如此,我根本不知道为什么我应该使用片段。

我应该使用一个 Activity 并加载不同的片段作为主要内容吗? 然后我的应用包含 2 个 Activity 和可能 50 个片段,当我完成它时。我认为我尝试实现它的方式是不正确的。

例如:当你进入 PlayStore 时,左侧有导航。您可以浏览应用程序等。您是否知道/知道这是具有不同主要内容的相同活动还是有更多活动?

你能帮帮我吗?谢谢:)

【问题讨论】:

    标签: android android-fragments android-navigation


    【解决方案1】:

    单活动应用程序是可能的,但不一定是最佳实践。恕我直言,fragment 的生命周期非常复杂,因此在您不必使用 Fragment 时使用 Activituies。

    如果您的问题是通过活动共享抽屉片段的状态,您可以将其作为额外内容传递给每个活动,或者将其保存在静态类/变量中以便在每次启动时检索它。

    不要忘记在销毁您的一项活动期间也保存此状态。

    【讨论】:

    • 我仍然没有获得片段的优势。我认为这是一个活动共享视图,我可以像单例一样检索,并且关闭活动后视图的状态(如所选项目)保留在内存中。
    • 片段是您可以在多个位置重复使用的活动的一小部分,但没有什么能让它们在活动之间共享。他们的主要观点是避免重复视图,并且可重复用于不同的布局(手机、平板电脑、横向、纵向……)
    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多