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

问题描述

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

enter image description here

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

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

解决方法

setupWithNavController使用交叉淡入淡出动画按照material design guidelines在标签之间切换。淡入淡出表示上一个标签页从完全不透明变为完全透明,而新标签页从完全透明变为完全不透明。在此过渡过程中,两个标签都是半透明的。这意味着您将部分地浏览两个页面,以查看为活动设置的android:windowBackground

在您的情况下,看来您有白色的windowBackground,这是白色闪光灯所来自的地方。

您应该:

  1. 更新活动主题以使用Dark主题,默认情况下,该主题将为您提供深色的windowBackground

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

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