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

Есть ли способ сделать мой диалог в полноэкранном режиме, т.е. диалог занимает весь экран (например, 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> 

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

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

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

Попробуй это

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

Ответ не работает для меня (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. Надеюсь помочь кому-то.

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

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

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 > 

Я использую тему 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); } 

Для полноэкранного диалога вы должны расширить 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); 

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

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