隐藏状态栏或永久清空
Hide status bar or empty it permanently
在我的应用中,不需要状态栏和导航栏。
我确实找到了隐藏状态/导航栏的解决方案,但您仍然可以将它们拉回来。
我在考虑做两件事。一种方法是创建一个 Thread
检查状态栏是否打开,以便它可以立即隐藏。这对我来说似乎是一件很狡猾的事情。
我和一个几年前参与过类似项目的人谈过,他说他们实现了他们没有隐藏状态栏但它完全是空的,当你试图把它拉下来时它大约有 1 毫米很长而且完全没用。
我可能想尝试走这条路。
你们能举几个例子说明如何:
- 去掉电池图标
- 摆脱时间
- 摆脱通知
...等等
所以基本上让它完全是空的?
如果我理解了,请告诉我,您需要在您的应用程序中删除状态栏,对吗?为什么不直接使用全屏 activity?
以编程方式执行:
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
标志,它允许通过在屏幕顶部自上而下滑动来调用状态栏。
要禁用状态下拉,请使用此方法。这是覆盖状态栏并消耗所有输入事件。它阻止状态扩展。
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);
因为我正在创建一个专用机器,我需要 android 设备只做一件事我最终创建了我自己的 AOSP 构建,具有以下 mod:
状态栏布局在这里:
frameworks/base/packages/SystemUI/res/layout/status_bar.xml
是否将高度更改为 0dp。
工作得很好,没有状态栏了。
感谢所有对问题投反对票的人。
也可以通过使图标对 GONE 可见(又是 AOSP 自定义构建解决方案)来 "empty" 状态栏...
我觉得楼上post的那几个人可能读起来有点乱。我的简短
如果你想在这里隐藏你的状态栏和操作栏,我。希望对您有所帮助:)
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getSupportActionBar().hide();
在我的应用中,不需要状态栏和导航栏。
我确实找到了隐藏状态/导航栏的解决方案,但您仍然可以将它们拉回来。
我在考虑做两件事。一种方法是创建一个 Thread
检查状态栏是否打开,以便它可以立即隐藏。这对我来说似乎是一件很狡猾的事情。
我和一个几年前参与过类似项目的人谈过,他说他们实现了他们没有隐藏状态栏但它完全是空的,当你试图把它拉下来时它大约有 1 毫米很长而且完全没用。
我可能想尝试走这条路。
你们能举几个例子说明如何: - 去掉电池图标 - 摆脱时间 - 摆脱通知 ...等等
所以基本上让它完全是空的?
如果我理解了,请告诉我,您需要在您的应用程序中删除状态栏,对吗?为什么不直接使用全屏 activity?
以编程方式执行:
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
标志,它允许通过在屏幕顶部自上而下滑动来调用状态栏。
要禁用状态下拉,请使用此方法。这是覆盖状态栏并消耗所有输入事件。它阻止状态扩展。
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);
因为我正在创建一个专用机器,我需要 android 设备只做一件事我最终创建了我自己的 AOSP 构建,具有以下 mod:
状态栏布局在这里:
frameworks/base/packages/SystemUI/res/layout/status_bar.xml
是否将高度更改为 0dp。
工作得很好,没有状态栏了。 感谢所有对问题投反对票的人。
也可以通过使图标对 GONE 可见(又是 AOSP 自定义构建解决方案)来 "empty" 状态栏...
我觉得楼上post的那几个人可能读起来有点乱。我的简短
如果你想在这里隐藏你的状态栏和操作栏,我。希望对您有所帮助:)
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getSupportActionBar().hide();