【发布时间】:2016-03-02 19:35:34
【问题描述】:
我使用 Android Studio 的选项卡式活动开始了一个新项目。它使用 ViewPager 和 3 个片段 = fragment1、fragment2 和 fragment3 创建了一个活动。 我将fragment1 更改为有一个listView 和一个TextView,我在创建片段时对其进行初始化。 listView 中的数据是从 SQL 数据库中读取的。 应用程序启动时,会显示 fragment1,listView 显示从 SQL 读取的数据。 当我从 fragment1 滑动到 fragment2 并返回时,fragment1 正确显示列表视图。但是,当我滑动到 fragment3 并返回到 fragment1 时,listview 数据丢失并且我得到一个空白屏幕,尽管 textview 显示正确。 当我将应用程序更改为只有 2 个片段时,它不会发生,我可以从片段 1 滑动到片段 2 并多次返回,而不会丢失任何数据。在我添加第三个片段的那一刻,数据在第一次滑动到片段 3 时丢失,但如果我只在片段 1 和片段 2 之间滑动,数据不会丢失。 知道为什么会这样吗?
【问题讨论】:
-
如果没有可重现的例子,就不可能准确地说明为什么会发生这种情况。两个 Fragment 不会出现问题的原因是 FragmentPagerAdapter 使两个 Fragment 保持活动状态,请参见此处:stackoverflow.com/questions/8348707/… 和此处:stackoverflow.com/questions/10853611/…
-
项目太大,无法发布。如果我们很快找不到解决方案,我会创建一个小版本来发布。
-
项目太大,无法发布。如果我们很快找不到解决方案,我将创建一个小版本来发布。无论如何,我进一步测试并发现发生的情况是列表视图丢失了它的适配器(listView.getAdapter() 返回 null)。因此,在重新显示页面之前,我现在测试这种情况,如果存在,我重新创建适配器,并且列表正确显示。这能给你一个提示吗?
-
问题我已经解决了。
标签: android listview android-fragments