【问题标题】:Prevent next fragment (tab) from preload with ViewPager使用 ViewPager 防止下一个片段(选项卡)预加载
【发布时间】:2012-08-05 18:44:53
【问题描述】:

我正在使用 Fragments 在 Android 中开发应用程序。我有这三个标签:

我知道,只要setOffScreenPageLimit() 的最小值为 1,就不可能阻止每一侧(前一个和下一个)加载一个片段,但这是否意味着如果我想显示一个 ProgressDialogDescargas Fragment 中运行的AsyncTaskonPreExecute 方法上,这会导致当我导航到Capturador 时一定会加载 ProgressDialog?如果是,我不知道如何让用户知道我正在下载包(这就是 Descargas 所做的,用于解析一些 XML)。

提前致谢;)

【问题讨论】:

  • 这个问题措辞很好。我面临着类似的挑战,我必须在不同的Fragments 中显示Dialogs,但我不能,因为它们相互重叠。
  • 希望有人能帮助我们。我不得不承认我对 Fragments 有点困惑,但我不知道如何解决这个问题。
  • setOffScreenPageLimit() 总是默认为 1,这很愚蠢。
  • 与问题无关,但 Android 设计指南要求始终将“设置”按钮放在溢出菜单中。

标签: android android-fragments android-fragmentactivity


【解决方案1】:

在 Descargas 片段上嵌入 ProgressBar。或者在加载时在片段的中心覆盖一个不确定的进度条。

对话框确实是活动的一部分,它只适用于其中一个页面是没有意义的。

最后,如果你必须坚持使用对话框,你可以实现一个 onPageChangeListener

viewPager.setOnPageChangeListener(OnPageChangeListener);

当您选择指定的片段时,您可以拉出相应的对话框,当您离开时,您可以打开相反的对话框。

【讨论】:

  • 感谢您的回答。然后考虑到我只是在学习,我会尝试按照编程的好习惯做一些一致的事情。我想好的方法是在主要活动中控制图形事件,如对话框或吐司,而不是在片段中。如果有人能给我一些想法,我将不胜感激。我不希望你们中的任何人做我的工作,而只是提示或指示。
  • 回答我自己并感谢 Pork,如果 Descargas 片段成功检索到我想要的包,我终于在布局中定义了一个不确定的 ProgresBar,我用 ProgressBar.setVisibility(View.GONE) 隐藏它等等.我希望这不是一个破旧的解决方案,因为据我所知,这不是那么先进,我什至无法开始实现 OnPageChangeListener 选项。
  • 这听起来很完美!您当然可以使用片段中的对话框,但是视图页面中的片段有点棘手。您必须注意,该对话框实际上是为了防止用户执行任何其他操作。但是,如果他们在等待时可以在活动中做其他事情,那么最好不要使用对话框。对我来说,这意味着progressdialog 是一种快速破解,通常不应该成为大多数人的最终解决方案。您可以从片段中驱动对话框,这很好,只需注意用户只真正了解/关心活动。
  • 你是绝对正确的。当用户在 Descargas 工作时实际上可以在应用程序上执行其他操作时,我用 ProgressDialog 阻止 UI 是没有意义的。非常感谢你,因为你不只是给我写了一段代码,仅此而已,你让我看到了我之前程序的不合逻辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
相关资源
最近更新 更多