2015-06-18 2 views
0

У меня есть эта функция, чтобы показать полноэкранный черный наложение на мою активность. Чтобы имитировать поведение экрана.Полноэкранный наложение без кнопки back/home/menu

private void showBlackOverlay() { 
    Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen); 
    dialog.show(); 
} 

Но все еще обратные/домашние/кнопки меню видны. Как я могу скрыть их? Мне тоже нужно работать и с более старыми версиями Android.

enter image description here

+0

Прими мой ответ, если он работает вы. Благодаря! –

ответ

1

Попробуйте как этот

View decorView = dialog.getWindow().getDecorView(); 
// Hide both the navigation bar and the status bar. 
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as 
// a general rule, you should design your app to hide the status bar whenever you 
// hide the navigation bar. 
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_FULLSCREEN; 
decorView.setSystemUiVisibility(uiOptions); 
1

попробовать так:

просто попробовал этот код на моем Nexus 7 (Android 4.4.2) и работает отлично

public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { 
     if (hasFocus) { 
      decorView 
        .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
          | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
          | View.SYSTEM_UI_FLAG_FULLSCREEN 
          | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
     } 
    } 
} 
+0

Что такое decorView? – ehsun7b

+0

DecorView - это вид, который фактически удерживает фоновый рисунок окна. Вызов getWindow(). SetBackgroundDrawable() из вашей Activity изменяет фон окна, изменяя фоновое изображение DecorView. – RaMeSh