android - 如何制作自定义警报对话框全屏

标签 android android-alertdialog android-dialog

我希望制作一个自定义的 AlertDialog 全屏,就像一个新的 Activity 屏幕。

尝试了这些答案,但还是不行

public void newDialog(final Context c){

    final AlertDialog alertDialog;

    LayoutInflater layoutInflater = LayoutInflater.from(c);
    dialogueView = layoutInflater.inflate(R.layout.layout_dialogue, null);

    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(c);
    alertDialogBuilder.setView(dialogueView);

    alertDialog = alertDialogBuilder.create();

    dialogueView.findViewById((R.id.closeBtn)).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            alertDialog.dismiss();
        }
    });

    alertDialog.show();
}

layout_dialogue.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
style="@style/full_screen_dialog"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/frame">

<android.support.design.widget.FloatingActionButton
    android:id="@+id/closeBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/background_sky"
    android:clickable="true"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@android:drawable/ic_delete" />

</android.support.constraint.ConstraintLayout>

样式.xml

<style name="full_screen_dialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsFloating">true</item>
</style>

我也试过

android.R.style.Theme_Black_NoTitleBar_Fullscreen  

ViewGroup.LayoutParams params = getDialog().getWindow().getAttributes();
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = WindowManager.LayoutParams.MATCH_PARENT;

他们都不为我工作。关于如何完成它有什么建议吗?

最佳答案

你可以使用自定义样式让我给你举个例子

style.xml

<style name="DialogTheme" parent="android:Theme.Dialog">

    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">fill_parent</item>
    <!-- No backgrounds, titles or window float -->
    <item name="android:windowBackground">@color/colorPrimary</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
</style>

Activity.java

AlertDialog.Builder builder = new AlertDialog.Builder(this , R.style.DialogTheme)

关于android - 如何制作自定义警报对话框全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54761919/

相关文章:

android - Kotlin、Android - 我如何在 runnable 中发布相同的 runnable?

java - 如何将 float 组转换为单字节字符串?

java - 如果用户在警报对话框中按"is"按钮,如何在列表中添加项目,而如果按“否”则不添加该项目

android - 基于文件类型的应用程序选择对话框

java - 从 Android AlertDialog 添加项目到 ListView

android - 使 AlertDialog 自定义

java - 使用AsyncTask发送UDP数据包

Android Espresso 在测试后保持应用运行

android - 如何在android对话框中放置一个计时器

java - 如何更改 Android 中警报对话框的文本行