android - 具有 viewpager 性能问题的导航组件

标签 android android-fragments android-architecture-navigation

我的情况如下:我有一个 HomeFragment,它包含一个 ViewPager,它有 3 个 Fragment(其中一个也有一个子 Fragment)。当我现在离开 HomeFragment 并尝试返回时,转换需要 1-2 秒并且非常缓慢,可能是因为 Viewpager 中的所有 3 个 fragment 都已恢复.使用 Android Navigation Component 有更简洁的方法吗?

最佳答案

考虑使用 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter

来自文档:

FragmentPagerAdapter - 在固定的、少量的同级屏幕之间导航时使用它。

FragmentStatePagerAdapter - 在对未知数量的页面进行分页时使用它。 FragmentStatePagerAdapter 通过在用户离开时销毁 fragment 来优化内存使用。

还可以尝试使用 ConstraintLayout 来保持 View 层次结构平坦。 在这段视频中,演讲者解释了为什么这很重要: https://youtu.be/rzmB3UxxhaA?t=2188

关于android - 具有 viewpager 性能问题的导航组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56223276/

相关文章:

android - 导航组件 - 未生成方向类

java - Android 中如何让服务在启动后一直保持 Activity 状态,直到应用程序被关闭或终止?

android - 库源文件应该如何引用其父项目中的字符串资源?

android - fragment webview javascript 函数不起作用

android - 更改页面后选项卡内容消失

android - 动态功能模块中 Fragments 的 fragmentScenario Espresso 测试

android - 使用 Android 导航架构组件在导航图中进行简单导航

android-viewmodel - Android Navigation 组件与 Viewmodel 的交互会如何?

android - 如何防止长按 EditText Widget 时显示虚拟键盘?

android Activity 无法绑定(bind)到服务