【发布时间】:2018-06-20 08:53:27
【问题描述】:
我正在尝试在所有活动中添加一个slidingUpPanel(Sliding up panel)。该面板由一个 viewpager 组成,该 viewpager 又由两个片段组成。其中一个片段有一个 recyclerView(超过 1000 个项目),另一个片段有一些数据会根据用户的选择动态变化。这个面板与 google play music 和 soundcloud 的面板非常相似。现在为了显示这个面板,我测试了两种方法:
1) 我创建了一个基本活动并将向上滑动面板添加到它,然后将其余活动扩展到基本活动。所以这种方式我只需要创建一个面板和viewpager。
2) 我在所有活动中都加入了向上滑动面板。但是这种方法非常难以管理,因为我已经为所有活动创建了查看页面,如果一个活动中的数据发生变化,我必须编写代码来反映所有活动的变化。
现在这两种方法的问题是每次我打开一个新活动时,都会创建一个新的 viewpager 实例和片段。因此,假设我在 recyclerview 片段中有 1000 多个项目,切换活动需要超过 2-3 秒,因为每次创建片段的新实例并重新加载数据。这肯定会导致糟糕的用户体验。
有没有什么方法可以让 viewpager 和片段只创建一次(当应用程序启动时)并且只在用户关闭应用程序时被销毁?并且每次用户切换活动时不应加载数据。我只是想减少活动切换时间。有什么想法吗?
谢谢。
【问题讨论】:
-
尝试使用 viewpager 创建一个活动,并将其他活动作为片段放置在该活动中。
-
没找到你。你能解释一下吗?
-
recyclerview 中有 1000 多个项目 => 那是你的问题,这对用户有什么实际意义?
-
如果用户的设备中有 1000 多首歌曲,所有歌曲都会在此处列出。这个歌曲列表存储在 sharedpreference 中。没有尝试延迟加载,因为我没有看到实现此功能的离线音乐播放器应用程序。
标签: android android-fragments android-recyclerview android-viewpager