会员登录|免费注册|忘记密码|管理入口 返回主站||保存桌面
android 屏幕内容被虚拟键盘遮挡 手机屏幕虚拟按键移除手机虚拟键盘「android 屏幕内容被虚拟键盘遮挡 手机屏幕虚拟按键移除」
2025-01-11IP属地 湖北2


低版本直接改qemu.hw.mainkeys,因为就没有手势导航,P版本开始才有的

S版本如下。只需要打个overlay

frameworks/base/core/res/res/values/dimens.xml

里面navigation_bar_height和navigation_bar_height_landscape都改成0dp,只是布局看不出来了,如果换个布局还是有的!不推荐!!

下面这个方法改宏控但是,就相当于彻底删除虚拟按键,那么在系统设置了的手势中,手势导航就会出现问题了,左右滑动无反应,只有上滑可以。所以改0dp虽然不是彻底清除,但是避免了这个问题,但还有个小bug就是会在选择手势导航后闪一下三键虚拟导航栏

修改这个底部虚拟导航栏是有宏控的,在device/mediatek/system/common/system.prop

-qemu.hw.mainkeys=0

+qemu.hw.mainkeys=1

0就是开启,1就是关闭

原理是在frameworks下调用这个宏的值做的逻辑执行

base/services/core/java/com/android/server/wm/DisplayPolicy.java

这个布尔值就是有个

调了返回值,所以之后要用到底部导航栏,就看底层是否能有。

还有个文件也同理

base/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java

也有关于这个宏的使用

所以用户需要去除虚拟按键,那就默认手势导航呗,再把底部横线去掉,把三按键导航删除,因为设置里手势导航里还有可以调节灵敏度的功能。全部删了不太好。这个方法其实底部三个按键底层还在,上层应用应该可以自己再调如果需要的话.总之如果改了qemu.hw.mainkeys=1,手势导航就无法左右滑动

默认手势导航  frameworks/base/core/res/res/values/config.xml下改配置

在frameworks//base/packages/overlays/Android.mk

下删除关于三键的包,不让他编译就行有个LOCAL_REQUIRED_MODULES里面删掉NavigationBarMode3ButtonOverlay

原理是在MtkSettings里面src/com/android/settings/gestures/SystemNavigationGestureSettings.java

是根据这个包名来添加的

移除底部横线就在override/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java

在updateNavButtonIcons方法里有

这个就是底部横线的布局,直接让他不显示就行,两个都是INVISIBLE

原理是这个getHomeHandle()会调用home_handle.xml这个布局,这个就是底部横线的布局了