实际上,在具有 4 个以上 Android 版本的平板电脑中,无法隐藏它,但您可以尝试这样做:
SYSTEM_UI_FLAG_LOW_PROFILE 标志替换了 STATUS_BAR_HIDDEN 标志。设置后,此标志为系统栏或导航栏启用“低调”模式。导航按钮变暗,系统栏中的其他元素也隐藏。启用此功能对于创建更具沉浸感的游戏很有用,而不会分散系统导航按钮的注意力。
SYSTEM_UI_FLAG_VISIBLE 标志替换 STATUS_BAR_VISIBLE 标志以请求系统栏或导航栏可见。
SYSTEM_UI_FLAG_HIDE_NAVIGATION 是一个请求导航栏完全隐藏的新标志。请注意,这仅适用于某些手机使用的导航栏(它不会隐藏平板电脑上的系统栏). 一旦系统接收到用户输入,导航栏就会返回视图。因此,此模式主要用于视频播放或其他需要整个屏幕但不需要用户输入的情况。您可以通过在活动中的任何视图上调用 setSystemUiVisibility() 来为系统栏和导航栏设置这些标志中的每一个。只要您的窗口具有输入焦点,窗口管理器就会组合(或一起)来自窗口中所有视图的所有标志并将它们应用到系统 UI。当您的窗口失去输入焦点时(用户离开您的应用程序,或出现一个对话框),您的标志将不再有效。同样,如果您从视图层次结构中删除这些视图,它们的标志将不再适用。
我发现的另一个解决方案是像这样查看您的布局视图:
yourView.setSystemUiVisibility(8);
他们说它适用于平板电脑,但我还没有真正尝试过。
另一种方法是添加此方法,并根据您要显示的内容传递 True 或 False:
void setNavVisibility(boolean visible) {
int newVis = mBaseSystemUiVisibility;
if (!visible) {
newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN;
}
final boolean changed = newVis == getSystemUiVisibility();
// Unschedule any pending event to hide navigation if we are
// changing the visibility, or making the UI visible.
if (changed || visible) {
Handler h = getHandler();
if (h != null) {
h.removeCallbacks(mNavHider);
}
}
// Set the new desired visibility.
setSystemUiVisibility(newVis);
mTitleView.setVisibility(visible ? VISIBLE : INVISIBLE);
mSeekView.setVisibility(visible ? VISIBLE : INVISIBLE);
}