2

我一直在寻找如何在Android平板电脑上隐藏状态栏。我知道除非您将平板电脑植根,否则这是不可能的。

我的主要痛苦是当我在我的应用程序上写字时,wi-fi 部分会弹出。

我知道隐藏导航/暗导航的标志 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 或 SYSTEM_UI_FLAG_LOW_PROFILE。

我需要的是:图库应用程序(内置于 android)中有一个功能,可让您遍历图像,仅在单击时弹出导航并在单击时隐藏。没有其他手势会触发此栏。

我需要一些方法来实现类似的东西。

如果有人能指出我正确的方向,我将不胜感激。

细节 :

平板电脑:三星 Galaxy Note 10.1 Android 版本:4.1.2

4

1 回答 1

4

实际上,在具有 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);
    }
于 2013-09-06T10:01:45.867 回答