public static void hideBottomUIMenu(Activity activity) {
if (!checkDeviceHasNavigationBar(activity))
return;
if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) {
View v = activity.getWindow().getDecorView();
v.setSystemUiVisibility(View.GONE);
} else if (Build.VERSION.SDK_INT >= 19) {
View decorView = activity.getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE;
decorView.setSystemUiVisibility(uiOptions);
}
}
public static void showBottomUIMenu(Activity activity) {
if (!checkDeviceHasNavigationBar(activity))
return;
if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) {
//低版本sdk
View v = activity.getWindow().getDecorView();
v.setSystemUiVisibility(View.VISIBLE);
} else if (Build.VERSION.SDK_INT >= 19) {
View decorView = activity.getWindow().getDecorView();
int uiOptions =
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
//下面这一句是关键,不加这一句,虚拟键盘弹出时将挤压布局
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
}
public static boolean checkDeviceHasNavigationBar(Context context) {
boolean hasMenuKey = ViewConfiguration.get(context)
.hasPermanentMenuKey();
boolean hasBackKey = KeyCharacterMap
.deviceHasKey(KeyEvent.KEYCODE_BACK);
if (!hasMenuKey & !hasBackKey) {
// 做任何你需要做的,这个设备有一个导航栏
return true;
}
return false;
}
public static void setNavigationColor(Activity activity, int color) {
if (!checkDeviceHasNavigationBar(activity))
return;
if (Build.VERSION.SDK_INT > 21) {
activity.getWindow().setNavigationBarColor(color);
}
}