java - 我们可以以编程方式更改状态栏或通知栏位置吗

标签 java android statusbar

我已将我的应用程序锁定为仅纵向模式,并且我自己处理了方向更改,但我意识到在横向模式下状态栏保持不变,并且 UI 体验会很糟糕。
现在,我已经相应地开发了所有东西,对我来说唯一的解决方法似乎是以编程方式更改状态栏位置,因为我不(或实际上此时不能)尊重系统方向的变化。
这可能吗?以编程方式更改状态栏位置?仅在我的应用程序内并在我退出后恢复?
下面我已经说明了预期的效果:
首先,应用程序被锁定为纵向模式,当我旋转设备时,应用程序的 View 旋转,因为我解析原始传感器数据并应用旋转,但在这种情况下,状态栏不会旋转(因为应用程序被锁定为纵向模式,我只能访问应用程序的 View 进行旋转):
enter image description here
我如何完成上述操作的伪代码是:

View views[] = new View[]{view1, view2, view3, view4 ....};
float rotationAngle = parseRawSensorData();//typically accelerometer input
for(View view: views){
    rotateWithAngle(rotationAngle);
}  
因此 View 会旋转,但状态栏是固定的。
我想做的是能够使用如下代码旋转状态栏:
enter image description here
即根据我获取的传感器数据旋转状态栏。

最佳答案

状态栏是 Android 系统的一部分,而不是您的应用程序的一部分。因此,您无法从应用程序中控制它。

关于java - 我们可以以编程方式更改状态栏或通知栏位置吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63971300/

相关文章:

java - 为什么日期/时间戳差异始终为 NULL?

Android Pie - 9 (API 28) : Installing APK . ...未成功安装

android - 在状态栏中实现交互式通知(Android)

android - 在状态栏上方显示 View ?

java - 如何在java中绘制自定义圆角矩形?

java - 我可以在运行时将字符串数组保存到 strings.xml 吗?

java - 无法使用 Lettuce 连接到本地 Redis 集群

android - 如何SetModifiedDate()驱动SDK

用于获取大小和删除元素模式的 Java 线程安全集合

iphone - iPhone (iOS 5) 上未显示网络 Activity 指示器