AlertDialog自定义视图未显示

时间:2014-03-31 18:44:06

标签: android alertdialog android-alertdialog

我正在使用XML自定义布局构建一个简单的AlertDialog。以下是它的外观(取自Eclipse):它只是4列:

enter image description here

以下是上图中的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:orientation="horizontal"
    android:weightSum="1.0" >

    <ImageView
        android:id="@+id/colorpicker_dialog_color1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.25"
        android:background="#FFF"
        android:tag="0xFFF" />

    <ImageView
        android:id="@+id/colorpicker_dialog_color2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.25"
        android:background="#FFDD66"
        android:tag="0xFFDD66" />

    <ImageView
        android:id="@+id/colorpicker_dialog_color3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.25"
        android:background="#66CCFF"
        android:tag="0x66CCFF" />

    <ImageView
        android:id="@+id/colorpicker_dialog_color4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.25"
        android:background="#B6C0D2"
        android:tag="0xB6C0D2" />

</LinearLayout>

以下是服装警报对话框的代码:

public void showColorPickerDialog() {
        LayoutInflater inflater = LayoutInflater.from(this);
        View layout = inflater
                .inflate(R.layout.color_picker_dialog, null);

        ImageView clr1 = (ImageView) layout
                .findViewById(R.id.colorpicker_dialog_color1);

        clr1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // .. code
            }
        });

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("cccc");

        builder.setView(layout)
                .setCancelable(true)
                .setPositiveButton("ok",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.dismiss();
                            }
                        }).show();

    }

问题是在我的对话框中我看不到任何列。

1 个答案:

答案 0 :(得分:0)

尝试在布局中使用Views代替ImageViews。在您的情况下使用ImageViews的问题是,由于您没有为src指定ImageView属性,因此它将显示0x0大小的图像,这会使您的视图不可见。