100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android 11.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题

Android 11.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题

时间:2023-04-07 16:29:19

相关推荐

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.javaold mode 100644new mode 100755index 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);}

【修改后横屏界面】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。