2016-02-10 3 views
5

Я хочу сделать диалоговое окно с полным экраном, но не скрывать строку состояния.Android make Dialog fullscreen со строкой состояния, показывающей

Если используется стиль Theme_Light_NoTitleBar_Fullscreen, диалоговое окно занимает весь экран.

Если используется стиль Theme_Material_Light_NoActionBar_TranslucentDecor, кажется, что он работает, но верхняя часть диалогового окна становится прозрачной. Я могу сделать это лучше, запросив высоту строки состояния и добавить верхнее дополнение к моей макете диалога. Это решение работает отлично, за исключением того, что оно не работает, если я подключил к нему анимацию.

Я очень смущен, почему Google делает диалоговое окно настолько сложным в использовании, и если я правильно делаю здесь полноэкранное диалоговое окно?

ответ

2

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

public YourCustomDiag(Activity act){ 
    //step 1, required. to stretch the dialog to full screen 
    super(act, android.R.style.Theme_Black_NoTitleBar_Fullscreen); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.custom_dialog_layout); 
    KeepStatusBar(); 
} 

//step 2, required 
private void KeepStatusBar(){  
    WindowManager.LayoutParams attrs = getWindow().getAttributes(); 
    attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; 
    getWindow().setAttributes(attrs); 
} 

this is the source where i found the snipplet

6

Просто используйте THEME_BLACK_NoTitleBar работал для меня !!!

+0

работал для меня. Лучшее решение! – TrueCH

+0

работал и на меня, этот ответ должен получить больше поддержки. – Nadimuddin

1

Использование android.R.style.Theme_Black_NoTitleBar

AlertDialog.Builder builder = new AlertDialog.Builder(context, 
        android.R.style.Theme_Black_NoTitleBar); 

Example screen

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