隐藏状态栏android时的白条一瞥(如何使它像Whatsapp状态)

Posted

技术标签:

【中文标题】隐藏状态栏android时的白条一瞥(如何使它像Whatsapp状态)【英文标题】:A glimpse of white bar when hiding status bar android (How to make it like Whatsapp status) 【发布时间】:2018-01-23 02:25:25 【问题描述】:

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

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);

它可以工作,但是

    当 Activity 启动时,它会在顶部显示白色背景几秒钟。有什么办法可以避免吗? 有人知道如何用动画(向上移动)隐藏它吗?比如当你点击状态图像时,Whatsapp 会隐藏状态栏? 如果我显示ProgressDialogAlertDialog,然后将其关闭并返回到活动,则状态栏将再次可见。如何避免它使状态栏始终不可见?

【问题讨论】:

【参考方案1】:

对于那些与此问题作斗争的人,请使用以下代码:

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 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions);

【讨论】:

【参考方案2】:

    确保在开始新活动后完成上一个活动。如果您在startActivity() 之前调用finish(),则可能会出现白屏。 (或)如果启动器活动中出现白屏,那是因为在 android Studio 中启用了 Insta Run。请参阅此 link 关于 Insta Run 的信息。

    对于 Whats App 之类的动画,您必须使用 coordinator layoutcollapsing toolbar 创建布局。使用parallax scrolling effect,您可以像什么应用程序一样隐藏图像。 教程参考这里link

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

【讨论】:

以上是关于隐藏状态栏android时的白条一瞥(如何使它像Whatsapp状态)的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript - 在 Android 中隐藏状态栏

android 2.2如何实现视图隐藏时的过度效果

android为啥透明不能全屏?如何将状态栏给隐藏起来。

隐藏导航栏时的假状态栏颜色

Android如何隐藏系统的状态栏

如何在 Android 4 中隐藏状态栏