Подтвердить что ты не робот

Пользовательский диалог в полноэкранном режиме?

Есть ли способ сделать мой диалог в полноэкранном режиме, то есть диалоги занимают весь экран (например, Activity). Я пробовал использовать LayoutParams и стили вроде <item name="android:windowFullscreen">true</item>, но ничего не работает.

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

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowBackground">@color/dialog_background</item>
</style>
</resources>
4b9b3361

Ответ 1

Дайте конструктору тему без диалога, например android.R.style.Theme или android.R.style.Theme_Light.

Ответ 2

Следующий код работает в моем случае:

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(R.layout.mydialog2);
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);

Ответ 3

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

dialog = new Dialog(context,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

Ответ 4

Ответ не работает для меня (sdk 21, samsung galaxy s5). После поиска и тестирования я считаю, что ключевым моментом для установки диалога для полноэкранного режима является <item name="android:windowIsFloating">false</item> в вашем стиле диалога. Большинство стилей диалога в sdk устанавливают его истинно! Установите его false в стиле и используйте его в

AlertDialog.Builder = new AlertDialog.Builder(getActivity(), R.style.YourStyle);

ваш стиль может выглядеть как

<style name="YourStyle">
    <item name="android:windowIsFloating">false</item>
    ...
</style>

после установки false, он должен быть полноэкранным. И еще, вы можете использовать

dialog.getWindow.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);

чтобы установить высоту в wrap_content. Надеюсь помочь кому-то.

Ответ 5

попробуйте этот код

protected void openDialog() {
        Dialog dialog = new Dialog(this);
        dialog.addContentView(new View(this), (new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)));
        dialog.show();
    }

Ответ 6

1.Настроить стиль диалога

 <style name = "MyDialog" >
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name = "android:windowContentOverlay" >@null</item >
        <item name = "android:colorBackgroundCacheHint" >@null</item >
        <item name = "android:backgroundDimEnabled">true</item>
        <item name = "android:windowBackground" >@android:color/transparent</item >
    </style >

Ответ 7

Я использую тему Activity with Dialog. В этом случае полноэкранный режим работал следующим образом:

int mUIFlag = View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().getDecorView().setSystemUiVisibility(mUIFlag);

        getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
        setContentView(R.layout.lockscreen_activity);
}

Ответ 8

В диалоговом окне полного экрана вы должны расширить DialogFragment, он предоставит методы жизненного цикла фрагментов, и это рекомендуемый способ в документах разработчика Android. Вы также можете использовать простой диалог или AlertDialog.

Когда вы создаете экземпляр диалогового окна, просто используйте тему "android.R.style.Theme_Black_NoTitleBar_Fullscreen" с таким контекстом:

 Dialog dialog = new Dialog(getActivity(), android.R.style.Theme_Black_NoTitleBar_Fullscreen);

или

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), android.R.style.Theme_Black_NoTitleBar_Fullscreen);

Это отобразит диалог в полноэкранном режиме. Надеюсь это поможет. Спасибо:)

Ответ 9

Попробуйте обернуть dialog_custom_layout.xml в RelativeLayout. Это сработало для меня.