【问题标题】:Activities or fragments in Android?Android中的活动或片段?
【发布时间】:2012-08-01 10:43:26
【问题描述】:

我正在创建一个带有操作栏的应用,并且标签会转到不同的网页。当用户点击不同的选项卡时,我希望以前的选项卡网页保持相同的状态(即再次按下选项卡时不会重新加载)。

最好的方法是什么?分开活动?碎片?一个活动中的多个网络视图?

谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    我认为您必须在本地使用每个页面的一个 webview 和 store content,例如在 DB 中,然后为自己制作一些导航栏并通过导航栏重新加载您的 webview 内容。 例如,导航栏可以像带有 Buttons 子项的 LinearLayout 一样组织。 如果您使用这种方式 - 例如,您可以在家中使用 wi-fi 下载 10 个网页,然后最小化您的应用程序并出去散步,一段时间后(即使您使用其他应用程序)您可以从DB,但如果您只在选项卡中使用片段,您可能会因为内存不足而丢失页面。

    如果您在选项卡中使用片段或属性 - 您无法确定是否会保存以前的内容(但您仍然可以通过适配器和 tabhost 来完成(有足够多的示例如何使用片段 + 选项卡)

    PS。这只是我的意见,我还没有尝试过,但我认为本地商店是解决您问题的最佳方法。

    【讨论】:

      【解决方案2】:

      使用 ActionBar 中的选项卡,它允许您使用 Fragments。切换选项卡时,Fragment 将被替换,之前的 Fragment 将保留其内容。

      Action Bar - Adding Navigation Tabs | Android Developers

      【讨论】:

      • 谢谢,我已经尝试过了,但我无法在片段中获得 Web 视图,它只是打开了一个单独的浏览器并且标签消失了。
      • 你如何填充你的网页视图?
      • 你的片段有一个 onCreateView() 方法来创建它的视图。您可以使 WebView 成为 Fragment 类的静态成员(例如),这样您将创建一次 WebView,它将保持实例化并保持相同的状态,而与片段实例的生命周期无关。
      • 是的,但是它占据了整个页面,我失去了标签。有什么想法吗?
      • 你的标签片段应该有一个 TabListener 来执行片段添加/删除操作。只有一个活动。如果您丢失了 ActionBar,则表明您可能正在开始一个新的 Activity?
      猜你喜欢
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多