当前位置:   article > 正文

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

config_navbarcanmove

本文转自Android 11.0 解决切换横屏时SystemUI导航栏固定在桌面右侧而不是底部的问题_android 11 固定显示系统导航栏_Mrsongs的心情杂货铺的博客-CSDN博客

正常情况下横竖屏旋转的时候导航栏也会跟着一起旋转,但是在Android R上面发现导航栏在横屏的时候是固定在右侧的,而不是旋转到底部。这个功能其实是Android 高版本特意修改的,为了是方便横屏玩游戏等场景的时候不小心误触到。我们先看看原本的界面图。

【竖屏界面】

在这里插入图片描述

 【横屏界面】

在这里插入图片描述

一开始的时候我以为是在SystemUI里面控制的导航栏旋转界面切换,但是发现并不是这样,其实是跟
framework中的 R.bool.config_navBarCanMove 这个变量有关,具体代码修改很简单,如下:

  1. 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
  2. old mode 100644
  3. new mode 100755
  4. index 0d467c50aa1..0a7662dd8fc
  5. --- a/frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java
  6. +++ b/frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java
  7. @@ -2895,9 +2895,10 @@ public class DisplayPolicy {
  8. void updateConfigurationAndScreenSizeDependentBehaviors() {
  9. final Resources res = getCurrentUserResources();
  10. - mNavigationBarCanMove =
  11. - mDisplayContent.mBaseDisplayWidth != mDisplayContent.mBaseDisplayHeight
  12. - && res.getBoolean(R.bool.config_navBarCanMove);
  13. + //mNavigationBarCanMove =
  14. + // mDisplayContent.mBaseDisplayWidth != mDisplayContent.mBaseDisplayHeight
  15. + // && res.getBoolean(R.bool.config_navBarCanMove);
  16. + mNavigationBarCanMove = false;
  17. mDisplayContent.getDisplayRotation().updateUserDependentConfiguration(res);
  18. }

【修改后横屏界面】

在这里插入图片描述

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/453863
推荐阅读
相关标签
  

闽ICP备14008679号