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

1.前言


  在12.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全屏时通过系统属性控制上滑是否显示虚拟导航栏和状态栏的核心功能分析和实现
3.1 InsetsControlTarget.java是否显示导航栏和状态栏的相关方法分析

    /**
       * @return The requested visibility of this target.
       */
      default boolean getRequestedVisibility(@InternalInsetsType int type) {
          return InsetsState.getDefaultVisibility(type);
      }
  
      /**
       * Instructs the control target to show inset sources.
       *
       * @param types to specify w

你可能感兴趣的:(android,12.0,Rom定制化系统讲解,android,java,frameworks,控制上滑状态栏,控制上滑导航栏)