全屏自定义对话框?

有什么办法使我的对话视图全屏,即对话占据整个屏幕(如活动)。 我尝试使用LayoutParams和样式像<item name="android:windowFullscreen">true</item>但似乎没有任何工作。

我find了摆脱标题栏的方法,但找不到一个方法来在全屏幕中放置一个对话框。 所以任何人都可以build议我做一个方法。

 <?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)。 在search和testing之后,我发现在对话框样式中设置全屏对话框的关键是<item name="android:windowIsFloating">false</item> 。 sdk中的大多数Dialog风格设置为true! 在样式中设置为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 > 

我正在使用一个活动与对话主题。 在这种情况下,全屏幕这样工作:

 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开发人员文档中推荐的方法,你也可以使用简单的Dialog或AlertDialog。

当你创build对话框实例时,只需使用“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 。 这对我有效。