【问题标题】:My Android Application Stops Working When Swiping Back and Forth The Fragments in ViewPager在 ViewPager 中来回滑动片段时,我的 Android 应用程序停止工作
【发布时间】:2015-12-17 10:30:55
【问题描述】:

我创建了一个 Android 应用程序,其中包含 44 个片段,用户可以使用 ViewPager 浏览它们,每个片段都包含一个高质量的图像(1024*768,240dpi)。在这个应用程序中一切正常,每个页面加载都没有任何问题。但是,如果您在片段中滑动,在几个片段之后,应用程序崩溃并抛出“OutOfMemoryError”。我注意到,往回滑动时,会重新创建之前的片段,而只要在页面之间来回滑动,就会一遍又一遍地创建相同的片段!我仍然不确定是什么导致了这个错误以及如何解决这个问题?

【问题讨论】:

    标签: android-viewpager out-of-memory heap-memory


    【解决方案1】:

    经过多次尝试和错误,我终于找到了答案。显然,“OutOfMemmoryError”是使用具有大量页面(片段)的 ViewPages 时的常见问题,特别是当它们包含高质量图像时。但答案很简单,您必须使用 FragmentStatePagerAdapter 而不是 FragmentPagerAdapter。后者适用于您有少量片段的情况,因为它会创建并将所有片段保存在内存中,因此您拥有的片段越多,您的应用程序很可能会抛出“OutOfMemotyError”。相比之下,FragmentStatePagerAdapter 非常适合大量 Fragment,因为它们会在显示 Fragment 后将其销毁,因此使用的内存更少。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多