如何在Android 6.0中隐藏导航栏?

时间:2015-10-24 02:55:37

标签: android fullscreen navigationbar

我有以下代码:

/* Set Dropdown Display to None*/
nav ul ul {
    display: none;
}

/* Display Dropdown on hover*/

nav ul li:hover > ul {
        display: block;
}

ul li{
 display: inline-block;
}

ul li a {
  padding: 20px;
}

ul li a:hover{
  text-decoration: none;
}

nav ul ul {
    background: #222222; 
  border-radius: 0px; 
    position: absolute; 
}

nav ul ul li{
  padding: 15px 0;
}

nav ul ul li a{
  color: #fff;
  opacity: .5;
}

nav ul ul li a:hover{
  color: #fff;
  opacity: 1;
}

此代码适用于Android Lollipop,将导航栏隐藏在粘性沉浸式模式中。但是现在,当我使用Android 6.0在我的手机上测试时,导航栏会消失,而导航栏曾经保留的黑色矩形会阻挡屏幕的一部分。

2 个答案:

答案 0 :(得分:1)

回想一下我的问题,我想添加我现在正在使用的解决方案,自那以后我并没有因此而失败,我不记得是在其他地方看到它还是自己找到它,但是我很高兴它能起作用。

public static void activiateFullscreen(Activity activity){
    View decorView = activity.getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
    if (Build.VERSION.SDK_INT >= 17) {
        uiOptions ^= View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                |View.SYSTEM_UI_FLAG_LOW_PROFILE;
    }
    if (Build.VERSION.SDK_INT >= 19) {
        uiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
    }
    decorView.setSystemUiVisibility(uiOptions);
}

希望这对某人有帮助!

答案 1 :(得分:0)

我发现了似乎可以解决此问题的解决方法。我支持肖像和风景,并注意到如果我旋转到横向或在横向启动应用程序,黑色矩形消失了。将以下代码添加到我的主要活动的onCreate()方法(在设置沉浸式标志之后)解决了问题:

    if (Build.VERSION.SDK_INT >= 23) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
    }