使用LayoutInflater创建占据整个屏幕的对话框

时间:2013-03-21 21:21:59

标签: android android-layout layout-inflater

我正在为应用设计一个“约”菜单,并在选项菜单中使用以下代码来生成它:

    case DIALOG_ABOUT:
        builder = new AlertDialog.Builder(this);
        Context context = getApplicationContext(); 
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE); 
        View layout = inflater.inflate(R.layout.about_dialog, null); 
        builder.setView(layout);

        TextView title = new TextView(this);
        title.setText(R.string.about_title);
        title.setGravity(Gravity.CENTER);
        title.setTextSize(20);
        builder.setCustomTitle(title);
        builder.setPositiveButton("OK", null); 
        dialog = builder.create();
        break;

我为about菜单创建了两个不同的视图 - 水平和垂直视图。

垂直显示时,about菜单看起来很好,但是当水平显示时,文本的底部会被切断。我正在使用LayoutInflator和View控件而没有太多关于它们如何工作的知识,因此我假设它们目前正在填充一些Android指定的大小。

如何创建对话框以占据整个屏幕,或至少占据整个屏幕的90%?

编辑 - 我的布局如下所示:

垂直布局:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:src="@drawable/icon" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:text="@string/game_name"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:text="@string/game_description"
    android:textAppearance="?android:attr/textAppearanceMedium" />

横向布局:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:src="@drawable/icon" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:text="@string/game_name"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:text="@string/game_description"
    android:textAppearance="?android:attr/textAppearanceMedium" />

1 个答案:

答案 0 :(得分:1)

您可以在对话框上调用以下内容填充整个空间。

dialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);