无法获得正确的自定义AlertDialog

时间:2013-02-15 11:18:59

标签: android android-layout android-linearlayout relativelayout

我一直在尝试设置自定义AlertDialog但无法正确使用。

prompt.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#ffe3e3"
    xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="HardcodedText">

    <TextView
        android:id="@+id/prompttitile"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|left"
        android:padding="5dp"
        android:text="Error Title Here"
        android:textColor="#c50200"
        android:textSize="16sp"
        android:textStyle="normal" 
        android:visibility="visible"
        />
    <TextView
        android:id="@+id/promptmessage"
        android:layout_below="@+id/prompttitile"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:padding="5dp"
        android:text="Error Title Here"
        android:textColor="#c50200"
        android:textSize="16sp"
        android:textStyle="normal" />   
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/promptmessage"
        android:weightSum="2"
        android:padding="10dp"
        android:background="#333"
        >
        <Button 
            android:text="@android:string/no"
            android:id="@+id/promptno"
            android:layout_width="0sp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:padding="7dp"
            android:textColor="@android:color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            android:background="@drawable/button_selector"
            android:layout_marginRight="5dp"
            android:gravity="center"
            />

        <Button 
            android:text="@android:string/ok"
            android:id="@+id/promptok"
            android:layout_width="0sp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:padding="7dp"
            android:textColor="@android:color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            android:background="@drawable/button_selector"
             android:gravity="center"
            />
    </LinearLayout>
</RelativeLayout>

enter image description here

我在AlertDialog的顶部得到黑色背景,我想只显示AlertDialog。

对话框代码

Dialog d=new Dialog(mContext);
d.setContentView(R.layout.prompt);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
d.getWindow().setAttributes(lp);
d.show();

2 个答案:

答案 0 :(得分:1)

试试这个

Dialog dialog = new Dialog(MainAppActivity.this, R.style.PauseDialog);
dialog.setContentView(R.layout.prompt);
dialog.setCancelable(true);
dialog.show();

和style.xml

<style name="PauseDialog" parent="@android:style/Theme.Translucent.NoTitleBar"></style>

答案 1 :(得分:1)

    Dialog d=new Dialog(this);
    //Add this
    d.requestWindowFeature(Window.FEATURE_NO_TITLE);

    d.setContentView(R.layout.prompt);
    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    d.getWindow().setAttributes(lp);
    d.show();