隐藏状态栏或永久清空它

时间:2018-04-13 15:12:19

标签: android android-studio statusbar navigationbar

在我的应用中,不需要状态和导航栏。

我确实找到了隐藏状态/导航栏的解决方案,但您仍然可以将它们拉回来。 我在考虑做两件事。一种方法是创建一个Thread来检查状态栏是否打开,这样它就可以立即隐藏。这对我来说似乎是一个非常狡猾的事情。

我跟一个多年前参与类似项目的人说过,他说他们实现了他们并没有隐藏状态栏,但是它完全是空的,当你试图把它拉下来时它大约是1mm很长,完全没用。

我可能想尝试这样做。

你们能举几个例子说明如何: - 摆脱电池图标 - 摆脱时间 - 摆脱通知 ...等

所以基本上让它完全是空的?

4 个答案:

答案 0 :(得分:0)

所以,如果我明白了,请告诉我,您需要在您的应用内部使用状态栏吗?为什么不直接使用全屏活动?

以编程方式执行:

requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);

或者在Android Manifest中指定一个主题:

<activity android:name=".ActivityName"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>

答案 1 :(得分:0)

您好像已经实现了IMMERSIVE_STICKY标记,该标记允许通过屏幕顶部的自上而下滑动来调用状态栏。

要禁用状态下拉列表,请使用此方法。这是覆盖状态栏并消耗所有输入事件。它可以防止状态扩大。

Android清单

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 

customViewGroup实施

WindowManager manager = ((WindowManager) getApplicationContext()
            .getSystemService(Context.WINDOW_SERVICE));

WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|

            // this is to enable the notification to recieve touch events
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |

            // Draws over status bar
            WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;

    localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
    localLayoutParams.height = (int) (50 * getResources()
            .getDisplayMetrics().scaledDensity);
    localLayoutParams.format = PixelFormat.TRANSPARENT;

    customViewGroup view = new customViewGroup(this);

    manager.addView(view, localLayoutParams);

答案 2 :(得分:0)

当我正在创建一个特殊用途的机器时,我需要Android设备只做一件事,我最终使用以下mod创建我自己的AOSP构建:

状态栏布局如下:

框架/碱/包/ SystemUI / RES /布局/ status_bar.xml

将高度更改为0dp。

工作得很好,没有状态栏了。 谢谢所有关注这个问题的人。

也可以通过使图标可见性为GONE(再次使用AOSP自定义构建解决方案)来“清空”状态栏...

答案 3 :(得分:0)

我认为那些在我之上发帖的人可能会有点迷惑阅读和理解。我简短而且简单

如果您想隐藏状态栏和操作栏,请执行此操作。我希望它有所帮助:)

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

getSupportActionBar().hide();