MTK Android12 SystemUI 手势导航 隐藏导航栏底部布局

发布于:2024-08-10 ⋅ 阅读:(122) ⋅ 点赞:(0)

问题:android12 平台手势导航情况下,app页面未设置全屏情况下,底部导航栏会有一个高度的颜色,底部导航会有一个手势导航提示条
需求:去掉手势导航情况下底部的导航栏和手势提示条


相关资源修改

解决方案:底部导航栏高度设置为1, 提示条高度设置为0 或者屏蔽draw 
修改的文件如下:
vendor\mediatek\proprietary\packages\apps\SystemUI\res\values\dimens.xml
frameworks\base\packages\overlays\NavigationBarModeGesturalOverlay\res\values\dimens.xml
\vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\navigationbar\gestural\NavigationHandle.java

问题描述

提示:如下问题,客户反馈的实际现象 观察屏幕底部条,不同界面颜色还不一致,影响了美观。

在这里插入图片描述
在这里插入图片描述

解决方案

分析:看UI显示样子应该是NavigationBar 有关系,Android10 有了手势导航之后一直存在的问题,部分Android手机端底部只显示中间的提醒小块

代码跟踪

中间提醒小方块代码查找

手势相关的代码在SystemUI app中,找到手势目录,在里面check 一下相关代码

在这里插入图片描述
找到手势底部中间的提醒块显示 在对应的类在NavigationHandle.java 类中处理的



public class NavigationHandle extends View implements ButtonInterface 
 
 public NavigationHandle(Context context, AttributeSet attr) {
   
        super(context, attr);
        final Resources res = context.getResources();
        mRadius = res.getDimension(R.dimen.navigation_handle_radius);
        mBottom = res.getDimension(R.dimen.navigation_handle_bottom);
        mAdditionalWidthForAnimation =
                res.getDimension(R.dimen.navigation_home_handle_additional_width_for_animation);
        mAdditionalHeightForAnimation =
                res.