使Dialog占据所有屏幕空间

时间:2015-09-30 08:29:08

标签: android dialog android-dialog

我有一个应该显示全屏对话框的Android应用。我尝试了不同的解决方案,但似乎没有人工作。 这是我的代码。 对话框的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/black_transparent" >


    <!--declaration of other widgets -->

</RelativeLayout>

这是扩展对话框的类:

publicMyDialog(Context context) {
    super(context, R.style.DialogTheme);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.setContentView(R.layout.my_dialog);
    this.setCancelable(true);
    this.setCanceledOnTouchOutside(false);
    this.getWindow().clearFlags(LayoutParams.FLAG_DIM_BEHIND);

}

这是R.style.DialogTheme声明

<style name="DialogTheme" parent="android:Theme.Dialog">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsFloating">true</item>
</style>

现在,当显示对话框时,它不会填满所有屏幕。 如何让make对话框占据所有屏幕?

3 个答案:

答案 0 :(得分:0)

有很多选择。一个是设置主题对话即

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

和其他设置布局参数。 (您可以在onCreateDialog()方法中使用它)

 dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);

答案 1 :(得分:0)

不是从父 android.Theme.Dialog 派生 DialogTheme ,而是使用非对话主题作为父对象,例如 @android:style / Theme.Black。 NoTitleBar

答案 2 :(得分:0)

您可以设置

getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

请查看此内容以获取更多信息。我希望它能为您提供帮助。

  

Custom Dialog in full screen?