Android 隐藏NavigationBar的Home和Recent按键
在某些需求在当前Activity需要隐藏Home和Recent按键,只保留back按键。
实现使用StatusBarManager
StatusBarManager是标记@hide的,SDK中是不存在,无法依赖编译,源码编译可以直接import使用,依赖SDK编译需要通过反射实现。
StatusBarManager 内部定义了public常量直接使用:
public static final int DISABLE_HOME = View.STATUS_BAR_DISABLE_HOME;
public static final int DISABLE_RECENT = View.STATUS_BAR_DISABLE_RECENT;
public static final int DISABLE_BACK = View.STATUS_BAR_DISABLE_BACK;
public static final int DISABLE_CLOCK = View.STATUS_BAR_DISABLE_CLOCK;
public static final int DISABLE_SEARCH = View.STATUS_BAR_DISABLE_SEARCH;
public static final int DISABLE_NONE = 0x00000000;
使用disable(int i) 接口隐藏statusbar中某些功能
屏蔽recent 和 home
StatusBarManager mStatusBarManager = (StatusBarManager)getSystemService(STATUS_BAR_SERVICE);
mStatusBarManager.disable(StatusBarManager.DISABLE_HOME | StatusBarManager.DISABLE_RECENT);
在界面退出时需要去掉隐藏,否则在其他界面也会不显示
mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
非源码编译通过反射。