- Android禁止下拉状态栏
1.在manifest 文件中添加权限:
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
2.在java文件中添加StatusBarManager 实例
mStatusBarManager = (StatusBarManager) mContext.getSystemService(Context.STATUS_BAR_SERVICE);
3. 禁止下拉状态栏
mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
4. 解除禁止
mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
Android 隐藏or 显示底部导航栏
private void setNavigationBarVisibility(boolean visible) {
int flag = 0;
if (!visible) {
flag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
}
getWindow().getDecorView().setSystemUiVisibility(flag);
}
Note:
SYSTEM_UI_FLAG_HIDE_NAVIGATION: View has requested that the system navigation be temporarily hidden.
Immersive模式
Android 4.4引入了一组新的布局标志可用于标记系统UI的可见性。从4.0开始,应用有隐藏状态栏和软导航按钮功能,并暂时使用View.SYSTEM_UI_FLAG_FULLSCREEN
和View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
标志为“精益回”体验,视频内容会占用整个显示屏幕。然而,这种模式不是交互式的,而只要用户点击屏幕上任意位置UI控件立刻返回(你的应用程序没有收到的一个事件)。
为了增强这一点,在Android的4.4添加了View.SYSTEM_UI_FLAG_IMMERSIVE
和View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
。在与所提及的场景中使用这些标志,可以在同一个系统中隐藏用户界面,当与用户的全屏应用程序内容进行交互时候还是保持这种方式。