Android 对话框 activity 取出整个屏幕而不是对话框

Android dialog activity takes out the whole screen instead of a dialog

我正在尝试设置一个伪装成对话的 activity。 我想让它出现在屏幕中间,但它占据了整个屏幕,只显示灰色...

我使用了 relativeLayout,这是我的代码和截图 -

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:theme="@android:style/Theme.Dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
tools:context=".TodoListManagerActivity">

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minHeight="60dp"
    android:id="@+id/et_add_dialog_text"
    android:hint="@string/addDialogInsertTextHere"
    />

<DatePicker
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:calendarViewShown="false"
    android:id="@+id/dp_add_dialog_date"
    android:layout_below="@+id/et_add_dialog_text" />

<Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add!"
        android:id="@+id/btn_add_dialog_add"
        android:layout_below="@id/dp_add_dialog_date"
        android:layout_alignLeft="@id/dp_add_dialog_date"
    />

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/addDialogCheckBoxNoDueDate"
    android:id="@+id/cbx_add_dialog_no_due"
    android:layout_below="@id/dp_add_dialog_date"
    android:layout_centerHorizontal="true"
    />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Cancel"
    android:id="@+id/btn_add_dialog_cancel"
    android:layout_below="@id/dp_add_dialog_date"
    android:layout_alignRight="@id/dp_add_dialog_date"
    />
</RelativeLayout>

和截图(浪费的地方用黄色标记)- screenshot of the fullscreen activity

我在网上搜索,特别是在 whosebug.com,所有其他相关问题都在 "alignParentLeft" + "alignParentRight" 的某个地方有两个左右的组成部分,但我不能在我的代码中找不到这样的东西。

在此先感谢大家! :)

您需要将 Activity(伪装成对话框)的主题设置为对话框。 在清单中输入以下代码。

       <activity
        android:name=".About"
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.Dialog" 
        >
        </activity>

这一行很重要,可以让您的 activity 伪装成一个对话框。

       android:theme="@android:style/Theme.Dialog"