在片段之间导航时如何去除白色闪烁/闪光?

How to remove white flicker / flash while navigating between fragments?

我已经使用导航组件设置了底部导航,但是每​​当我在片段之间导航时,我都会看到白色的闪烁。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    navController = Navigation.findNavController(this, R.id.dashboardNavHostFragment)
    bottomNavigationView.setupWithNavController(navController)
}

这就是我设置底部导航的方式。

setupWithNavController 根据 material design guidelines 使用交叉淡入淡出动画在选项卡之间切换。交叉淡入淡出意味着前一个选项卡从完全不透明变为完全透明,而新选项卡从完全透明变为完全不透明。在此转换的中间,两个 选项卡都是semi-transparent。这意味着您将部分地透过它们看到您在 activity.

上设置的 android:windowBackground

在你的情况下,你有一个白色 windowBackground,这是白色闪光的来源。

您应该:

  1. 更新您的 activity 主题以使用 Dark 主题,默认情况下会给您一个深色 windowBackground

  2. 手动更新主题以包含深色背景:

    <item name="android:windowBackground">@color/black</item>