隐藏状态栏android时一瞥白色栏(如何使其类似于Whatsapp状态)

Gur*_*uri 6 java android statusbar android-studio

我正在使用以下代码隐藏状态栏,

if (Build.VERSION.SDK_INT < 16) {
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
    View decorView = getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);
}
Run Code Online (Sandbox Code Playgroud)

它有效,但是

  1. 活动开始时,它会在顶部显示白色背景几秒钟。有什么办法可以避免这种情况?
  2. 有没有人知道如何使用动画(向上移动)将其隐藏,例如单击状态图像时Whatsapp隐藏状态栏?
  3. 如果显示ProgressDialogAlertDialog,然后将其关闭,然后返回到活动,则状态栏将再次变为可见。如何避免这种情况使状态栏始终不可见?

Nav*_*r M -1

  1. 确保您在开始新活动后完成了上一个活动。如果您finish()之前拨打电话startActivity(),可能会出现白屏。(或)如果启动器活动中出现白屏,这是因为在 Android Studio 中启用了 Insta Run。请参阅有关 Insta Run 的链接

  2. 对于像动画这样的应用程序,您必须使用 , 创建布局coordinator layoutcollapsing toolbar使用parallax scrolling effect您可以像应用程序一样隐藏图像。有关教程,请参阅此处链接

  3. OnCreate()调用 AlertDialog 后,您的活动将恢复,因此仅当您打开任何对话框并返回到活动时,才会隐藏状态栏,OnResume()此时将调用 super.onResume,并且活动基本将再次重置。所以你也在方法中调用状态栏隐藏方法OnResume()