使用沉浸模式的应用在等待一段时间后返回时(活动被销毁)会在屏幕底部留下一个黑条。
发生了什么:(我启用了开发人员选项:“不要保留活动”来重现此内容)。
首次启动应用程序。沉浸模式按预期工作。
向上滑动以显示“沉浸式粘性”导航栏,然后使用“主页”按钮离开应用程序。在应用程序关闭之前,导航栏的背景会短暂显示黑色背景。
使用“最近”按钮,然后选择应用程序以恢复它。
该应用程序打开以在黑色条上简要显示导航条。系统 ui 折叠为沉浸模式,但黑条仍然存在。

此错误也仅出现在 Lollipop 上,而不出现在 KitKat 上。
我已经剥离了应用程序,只启动一个虚拟活动,除了设置系统 UI 标志外没有任何功能:
public class DummyActivity extends FragmentActivity {
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
setSystemUiVisibility();
}
}
public void setSystemUiVisibility() {
if (getWindow() != null && getWindow().getDecorView() != null) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:在创建一个只有这个活动的新项目后,我看到这个问题在使用扩展“android:Theme.Holo”的应用程序主题时重现,并在我扩展 Material 主题时修复了这个示例项目中的问题:
改变
<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar.Fullscreen">
</style>
Run Code Online (Sandbox Code Playgroud)
到
<style name="AppTheme"parent="android:Theme.Material.Light.NoActionBar.Fullscreen">
</style>
Run Code Online (Sandbox Code Playgroud)
不幸的是,此修复程序并未解决我的主要项目中的问题,但它使我更接近解决方案,并且可能会帮助其他人解决相同的问题。