java - 我们可以以编程方式更改状态栏或通知栏位置吗
问题描述
我已将我的应用程序锁定为仅纵向模式,并且我自己处理了方向更改,但我意识到在横向模式下状态栏保持不变,并且 UI 体验会很糟糕。
现在,我已经相应地开发了所有东西,对我来说唯一的解决方法似乎是以编程方式更改状态栏位置,因为我不(或实际上此时不能)尊重系统方向的变化。
这可能吗?以编程方式更改状态栏位置?仅在我的应用程序内并在我退出后恢复?
下面我已经说明了预期的效果:
首先,应用程序被锁定为纵向模式,当我旋转设备时,应用程序的视图旋转,因为我解析原始传感器数据并应用旋转,但在这种情况下,状态栏不会旋转(因为应用程序被锁定为纵向模式,我只能访问应用程序的视图进行旋转):
我如何完成上述操作的伪代码是:
View views[] = new View[]{view1, view2, view3, view4 ....};
float rotationAngle = parseRawSensorData();//typically accelerometer input
for(View view: views){
rotateWithAngle(rotationAngle);
}
因此视图会旋转,但状态栏是固定的。
即根据我获取的传感器数据旋转状态栏。
解决方案
状态栏是 Android 系统的一部分,而不是您的应用程序的一部分。因此,您无法从应用程序中控制它。
推荐阅读
- java - 由于 getText(),Android Studio 无法编译
- installation - 使用 InstallShield Lite 安静地安装 VC_REDIST.X86
- postgresql - 删除员工时,删除 Works_On 和 Dependent 中的引用行
- html - Angular 7:动态生成模板
- html - 我正在制作一个网站,但我的关于我们选项卡上有问题
- html - 水平和垂直居中引导连续行中的 4 列
- python - Flask-Security 错误 - NameError:未定义全局名称“verify_and_update_password”
- python - ax.twinx().twiny() 右侧 y 轴的刻度和标签不可移除
- shell - 从 shell 脚本中的键值对为变量赋值
- amazon-redshift - Redshift 中的 LAG 窗口函数 - 在单行中显示上一年和当前年份的值