Android 11.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题
Posted Mrsongs的心情杂货铺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 11.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题相关的知识,希望对你有一定的参考价值。
前言
正常情况下横竖屏旋转的时候导航栏也会跟着一起旋转,但是在android R上面发现导航栏在横屏的时候是固定在右侧的,而不是旋转到底部。这个功能其实是Android 高版本特意修改的,为了是方便横屏玩游戏等场景的时候不小心误触到。我们先看看原本的界面图。
【竖屏界面】
【横屏界面】
一开始的时候我以为是在SystemUI里面控制的导航栏旋转界面切换,但是发现并不是这样,其实是跟
framework中的 R.bool.config_navBarCanMove 这个变量有关,具体代码修改很简单,如下:
diff --git a/frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java b/frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java
old mode 100644
new mode 100755
index 0d467c50aa1..0a7662dd8fc
--- a/frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -2895,9 +2895,10 @@ public class DisplayPolicy
void updateConfigurationAndScreenSizeDependentBehaviors()
final Resources res = getCurrentUserResources();
- mNavigationBarCanMove =
- mDisplayContent.mBaseDisplayWidth != mDisplayContent.mBaseDisplayHeight
- && res.getBoolean(R.bool.config_navBarCanMove);
+ //mNavigationBarCanMove =
+ // mDisplayContent.mBaseDisplayWidth != mDisplayContent.mBaseDisplayHeight
+ // && res.getBoolean(R.bool.config_navBarCanMove);
+ mNavigationBarCanMove = false;
mDisplayContent.getDisplayRotation().updateUserDependentConfiguration(res);
【修改后横屏界面】
以上是关于Android 11.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题的主要内容,如果未能解决你的问题,请参考以下文章
系统方向学习总结4-- Android 10.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题
系统方向学习总结4-- Android 10.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题
系统方向学习总结4-- Android 10.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题
Android 11.0 修复在录音机APK(SoundRecorder),横屏显示时录制时间不能居中
Android开发,重写了onConfigurationChanged方法。横屏切换竖屛不会重建,而竖屛切换横屏却仍会重建活动