2017-01-09 3 views
0

Я использую SYSTEM_UI_FLAG_FULLSCREEN скрыть status bar, такой код (SDK> 16):Скрыть панель состояния не работает

Decorview decorview = getWindow().getDecorview(); 
decorview.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); 

Однако, он работает на некоторых Android телефонов, но не на других, как показано ниже: wrong status bar hidden

Что не так с белой панелью satus? Почему это не скрыто? ps: Стиль в порядке, просто нормальный, нет fitwindowsystem, без погружения.

+0

Привет, вы нашли ответ на этот вопрос? У меня такая же проблема. –

+0

@AI WId Nope. Я отказался от использования этого метода и использовал способ: getWindow(). AddFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN); Оно работает. –

+0

ОК спасибо, я сделаю то же самое, я думаю –

ответ

0

Как уже упоминалось в Android Docs, вы можете скрыть statusBar, как это в SDK < 16 Android версии т.е. ниже Jellybean:

if (Build.VERSION.SDK_INT < 16) { 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     } 

вызов этого в вашем методе onCreate, перед вызовом setContentView.

и SDK выше 16 можно использовать следующий код:

View decorView = getWindow().getDecorView(); 
// Hide the status bar. 
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; 
decorView.setSystemUiVisibility(uiOptions); 
// Remember that you should never show the action bar if the 
// status bar is hidden, so hide that too if necessary. 
ActionBar actionBar = getActionBar(); 
actionBar.hide(); 
+0

Спасибо, что ответили! Но sdk выше 16, и нет панели действий. Я просто делаю так, как в вашем ответе, но он не работает на каком-то телефоне. –

0

1.Если Android версии ниже Jellybean, используйте этот вызов, чтобы скрыть.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (Build.VERSION.SDK_INT < 16) { 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 
    setContentView(R.layout.activity_main); 
} 

2.Code, чтобы скрыть строку состояния на 16 и выше ваш код работает.

Decorview decorview = getWindow().getDecorview(); 
decorview.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); 

Примечание: Помните, что вы никогда не должны показывать панель действий, если строка состояния скрыта, поэтому скрывать, что тоже, если это необходимо.

ActionBar actionBar = getActionBar(); 
actionBar.hide(); 

3.Если в строке состояния всегда должны оставаться скрытыми в вашей заходящего в тему активности в файле манифеста вашего приложения приложения.

<application 
    ... 
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" > 
    ... 
</application> 
+0

Спасибо, что ответили! Но sdk выше 16, и нет панели действий. Я просто делаю так, как в вашем ответе, но он не работает на каком-то телефоне –

Смежные вопросы