【发布时间】:2021-01-06 07:27:18
【问题描述】:
我已将我的应用程序锁定为仅纵向模式,并且我自己处理了方向更改,但我意识到在横向模式下状态栏保持不变,并且 UI 体验会很差。
现在,我已经相应地开发了所有东西,对我来说唯一的解决方法似乎是以编程方式更改状态栏位置,因为我不(或实际上此时不能)尊重系统方向的变化。
这可能吗?以编程方式更改状态栏位置?仅在我的应用内并在我退出后恢复?
下面我已经说明了想要的效果:
首先,应用程序被锁定为纵向模式,当我旋转设备时,应用程序的视图会旋转,因为我会解析原始传感器数据并应用旋转,但在这种情况下,状态栏不会旋转(因为应用程序是锁定为纵向模式,我只能访问应用的视图进行旋转):
我如何完成上述操作的伪代码是:
View views[] = new View[]{view1, view2, view3, view4 ....};
float rotationAngle = parseRawSensorData();//typically accelerometer input
for(View view: views){
rotateWithAngle(rotationAngle);
}
因此视图会旋转,但状态栏是固定的。
即根据我获取的传感器数据旋转状态栏。
【问题讨论】:
-
好问题,我过去一直在寻找类似的东西,但我放弃了,找不到任何解决方案。祝你好运,我已经解决了你的问题
-
@juztcode ,非常感谢,非常感谢。 :-)
-
添加一些代码和图片真的很有帮助!!
-
@kelvin ,我已经添加了相关代码和一些插图。
-
隐藏状态栏怎么样?