AlertDialog没有它的股票背景

时间:2012-10-08 10:32:08

标签: android background android-alertdialog

这是我尝试过的:

    public AlertDialogEx(final Context context, View lytCustom)
    {
        // Set your theme here
        super(context, android.R.style.Theme_Translucent);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        // This is the layout XML file that describes your Dialog layout
        this.setView(lytCustom);
//        this.setContentView(lytCustom);
    }

并没有摆脱那个黑色背景:

enter image description here

使用setContentView()代替setView()会导致臭名昭着的“requestFeature()必须在添加内容之前调用”消息,不幸的是没有明显的原因。我怎样才能实现目标?

2 个答案:

答案 0 :(得分:0)

您应该在xml布局文件中定义对话框的背景/ 像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?windowBackground"
android:orientation="vertical" >
.........................
body of your dialog
...........................
</LinearLayout>

或者你可以这样做pro​​gramaticaly

  view.setBackgroundColor(color)

答案 1 :(得分:0)

使用常规全屏Activity而不是使用主题@android:Alert / Theme.Translucent.NoTitleBar的AlertDialog结束,并且有很多透明背景。