【问题标题】:Reusing Fragments - Is it bad idea? Is it good idea? And is it possible?重用片段——这是个坏主意吗?这是个好主意吗?这可能吗?
【发布时间】:2014-05-06 00:20:21
【问题描述】:

显然 Android 不是面向 MVC 的。否则 onRestoreInstanceState(Model)、findViewById(View) 和 startActivity(controller) 将不会在同一个 class(Activity) 中。

在使用 Fragment 时最重要的是,它们的生命周期受限于它们所托管的活动。例如:我正在使用FragmentPagerAdapter,它的一个选项卡是一个片段,也是同一活动中的一个弹出窗口。这是一个复杂的视图,它有很多模型和控制器(来自 Facebook 和 Google+ 的混合好友列表,受我的应用程序过滤器限制)。我不想重新创建这个视图。我想要一些神奇的方式,让它成为一个选项卡,然后是一个弹出窗口,然后是其他场景中的一个屏幕。

那么我应该保留同一个片段的实例并将其推送到我的应用程序上,同时更改视图吗?还是我应该只保留视图实例?还是我应该忘记 MVC 并将其全部推入 onCreate() 并尝试记住哪个朋友在哪个之前?

Android 有什么建议?你有什么建议?

【问题讨论】:

    标签: android android-activity fragment fragmentpageradapter


    【解决方案1】:

    如果明智地重用片段是一个非常好的主意,您获得的最大优势是在多设备应用程序上。

    例如,平板电脑的应用程序可以交付给手机。

    检查this,您可以拥有不会因活动而死的“无头”片段...

    【讨论】:

    • 它们对于“重用”有不同的含义。我正在努力保留相同的片段实例,然后将其推送到选项卡和弹出窗口,然后再过一段时间。在文章中,他们谈到在不同的活动和设备中重用相同的片段(重用类,而不是实例)
    • 好吧,我认为您的方法会导致内存泄漏,为什么不使用服务来提供数据并以预期的方式“重用”片段?那就是复用,你说的是“持久化”的片段,不一样。
    • 不,在这两种情况下都是同一个术语:重用。计算机中没有这样的东西,因为“持久”
    • 另外,您从哪里读到“不会因活动而死的无头碎片”?我没找到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2011-10-10
    • 2016-12-08
    • 2020-12-12
    相关资源
    最近更新 更多