问题: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.