欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Android Framework定制navigationBar显示

Android Framework定制navigationBar显示

2024/10/23 5:39:14 来源:https://blog.csdn.net/zmlovelx/article/details/143035374  浏览:    关键词:Android Framework定制navigationBar显示

导航栏3种模式

在安卓系统中,“config_navBarInteractionMode” 是一个特定的配置参数,用于设定安卓设备导航栏的交互模式。
frameworks/base/core/res/res/values/config.xml

    <!-- Controls the navigation bar interaction mode:0: 3 button mode (back, home, overview buttons)1: 2 button mode (back, home buttons + swipe up for overview)2: gestures only for back, home and overview -->
  1. 0 3按键导航 底部有3个按键
  2. 1 2按键导航 底部有2个按键
  3. 2 手势导航 底部有一条横线

如下图为三按键模式:

在这里插入图片描述

如下图为手势模式

在这里插入图片描述

修改设置默认为手势导航模式

diff --git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml
index bed476cdc0..fc961154b3 100755
--- a/frameworks/base/core/res/res/values/config.xml
+++ b/frameworks/base/core/res/res/values/config.xml
@@ -3235,7 +3235,7 @@0: 3 button mode (back, home, overview buttons)1: 2 button mode (back, home buttons + swipe up for overview)2: gestures only for back, home and overview -->
-    <integer name="config_navBarInteractionMode">0</integer>
+    <integer name="config_navBarInteractionMode">2</integer><!-- Controls whether the nav bar can move from the bottom to the side in landscape.Only applies if the device display is not square. -->

控制导航栏显示

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
控制三个按钮的显示: 返回、HOME、Recents

         getBackButton().setVisibility(disableBack       ? View.INVISIBLE : View.VISIBLE);getHomeButton().setVisibility(disableHome       ? View.INVISIBLE : View.VISIBLE);getRecentsButton().setVisibility(disableRecent  ? View.INVISIBLE : View.VISIBLE);

控制手势横线的显示可以通过这条语句

getHomeHandle().setVisibility(disableHomeHandle ? View.INVISIBLE : View.VISIBLE);

下面这个修改是隐藏navigationBar的三键与手势横线,前面我们修改的是设置为手势模式,这里虽然隐藏了手势横线的显示,但是手势模式中的左右滑退出的功能是还存在的。

diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index d0c0226db9..c3561681ee 100644
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -819,6 +819,8 @@ public class NavigationBarView extends FrameLayout implements}}+        // hide navigationbar
+        disableBack = disableHome = disableRecent = disableHomeHandle = true;getBackButton().setVisibility(disableBack       ? View.INVISIBLE : View.VISIBLE);getHomeButton().setVisibility(disableHome       ? View.INVISIBLE : View.VISIBLE);getRecentsButton().setVisibility(disableRecent  ? View.INVISIBLE : View.VISIBLE);

作者:帅得不敢出门

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com