java - 隐藏状态栏、导航栏而不调整内容大小

标签 java android statusbar

我使用下面的代码来隐藏/取消隐藏状态栏/导航栏。

    public void hideSystemUI() {
    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 // hide nav bar
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);
}

public void showSystemUI() {
    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);


}

当状态栏/导航栏显示或隐藏然后主要内容调整大小时(查看此视频:https://drive.google.com/file/d/11OnTSWBkNnn2PJ3_O0t-IWuregmiNHYW/view?usp=sharing),如何防止这种情况?

最佳答案

请使用以下代码隐藏状态栏

fun hideStatBar(activity: Activity)
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
    {
        var window = activity.window
        if (window != null)
        {
            window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
            window.statusBarColor = Color.TRANSPARENT
        }
    }
}

显示状态栏的方法

    fun displayStatBar(activity: Activity)
    {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
        {
            var window = activity.window
            if (window != null)
            {
                window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
                window.statusBarColor = activity.getColor(R.color.primary_dark)
            }
        }
    }

关于java - 隐藏状态栏、导航栏而不调整内容大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57725915/

相关文章:

Java 10,Intellij 警告(类未导出,在同一模块中访问)

android - Android 的 3D map 库

android - 控制android状态栏图标

java - 在java servlet中从http重定向到https并返回http

java - boolean 值无法与 http 正常工作获取结果

java:读取文本文件并使用扫描仪类将信息存储在数组中

android - 尝试为 GreenDAO 运行 DaoGenerator 时出现 NoClassDefFoundError

android - 在Android 3.0上检索手机联系人

iOS 指南、Twitter 集成、网络事件的状态栏

c++ - 如何正确添加状态栏?