隐藏状态栏或将其永久清空



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

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

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

我可能想尝试走这条路。

你们能给我举几个例子吗:- 摆脱电池图标- 摆脱时间- 摆脱通知...等

所以基本上让它完全空了?

所以,如果我理解它,请告诉我,您需要将状态栏放在您的应用程序中,对吗?为什么不只使用全屏活动?

以编程方式执行此操作:

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

或者在 Android 清单中指定主题:

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

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

若要禁用状态下拉列表,请使用此方法。这是状态栏上的叠加,使用了所有输入事件。它可以防止状态扩展。

安卓清单

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

自定义视图组实现

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

由于我正在努力创建一台特殊用途的机器,并且我只需要 android 设备来做一件事,我最终使用以下 mod 创建了自己的 AOSP 构建:

状态栏布局如下所示:

frameworks/base/packages/SystemUI/res/layout/status_bar.xml

确实将高度更改为 0dp。

工作正常,不再有状态栏。感谢所有对这个问题投反对票的人。

也可以通过使图标对 GONE 可见来"清空"状态栏(再次 AOSP 自定义构建解决方案(...

我认为那些在我上面发帖的少数人可能会有点困惑,难以阅读和理解。我的简短而简单

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

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

最新更新