Android 13.0 app全屏时通过系统属性控制上滑是否显示虚拟导航栏和状态栏

1.前言


  在13.0的系统rom定制化os开发中,在系统默认的功能中,在app设置全屏后,会隐藏导航栏和状态栏,页面全屏显示,然后如果底部上滑这时就会显示虚拟
状态栏和导航栏显示几秒钟后会自动消失,由于项目开发的功能需求,要求需要要求通过api来控制全屏时上滑是否显示虚拟导航栏和状态栏,这就要从上滑事件
分析看如何显示虚拟导航栏和状态栏的流程来控制是否显示的实现

2.app全屏时通过系统属性控制上滑是否显示虚拟导航栏和状态栏的核心类

      frameworks\base\services\core\java\com\android\server\wm\DisplayPolicy.java
      frameworks/base/services/core/java/com/android/server/wm/InsetsControlTarget.java

3.app全屏时通过系统属性控制上滑是否显示虚拟导航栏和状态栏的核心功能分析和实现

在Android13中,一般的window的是在 DisplayPolicy的layoutWindowLw方法中布局的,而导航栏和状态栏分别是在DisplayPolicy的layoutNavigationBar和layoutStatusBar方法中布局的。
在 Android 9(及更低版本)中,PhoneWindowManager 类处理了屏幕政策、状态和设置、旋转、装饰窗口框架跟踪等。Android 10 将大部分内容移至 DisplayPolicy 类,旋转跟踪除外(移至 DisplayRotation)

3.1 InsetsControlTarget.java是否显示导航栏和状态栏的相关方法分析

      

你可能感兴趣的:(android,13.0,Rom定制化系列讲解,android,全屏时控制上滑显示状态栏导航栏,控制显示导航栏状态栏,导航栏,状态栏)