首页 文章

ViewPager中的片段丢失了它的视图

提问于
浏览
1

我使用Android Studio的标签式活动开始了一个新项目 . 它使用ViewPager和3个片段= fragment1,fragment2和fragment3创建了一个活动 . 我将fragment1更改为listView和TextView,我在创建片段时初始化 . listView中的数据是从SQL数据库中读取的 . 应用程序启动时,将显示fragment1,listView显示从SQL读取的数据 . 当我从fragment1滑动到fragment2并返回时,fragment1正确显示了listview . 但是,当我滑动到fragment3并返回到fragment1时,listview数据会丢失并且我得到一个空白屏幕,尽管textview显示正确 . 当我将应用程序更改为只有2个片段时,它不会发生,我可以从fragment1滑动到fragment2并返回多次而不会丢失任何数据 . 在我添加第3个片段的那一刻,数据在第一次滑动到片段3时丢失,但是如果我仅在片段1和片段2之间滑动则不会丢失 . 知道为什么会这样吗?

1 回答

  • 1

    问题解决了 . 问题是由于适配器在内存中保留了3个片段,正如@Daniel Nugent指出的那样 . 页面中的数据是从DB加载的,因此在重新创建视图时,当用户滑动时碎片被销毁并重新创建时,listview适配器已丢失数据,并且必须重新填充它 . 这个问题没有出现在简单的例子中,因为通常所呈现的数据是静态的,并且是在onCreateView方法中加载的 .

相关问题