如何创建水平维度的对话框

时间:2012-07-23 13:46:42

标签: android layout dialog

当我在布局中使用时,它指定了这个对话框android:layout_width="match_parent"我得到了这个对话框:

small dialog

我需要更广泛的对话。有什么想法吗?

2 个答案:

答案 0 :(得分:122)

您可以通过抓取对话框使用的Window对象并重置宽度来实现。这是一个简单的例子:

//show the dialog first
AlertDialog dialog = new AlertDialog.Builder(this)
        .setTitle("Test Dialog")
        .setMessage("This should expand to the full width")
        .show();
//Grab the window of the dialog, and change the width
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
Window window = dialog.getWindow();
lp.copyFrom(window.getAttributes());
//This makes the dialog take up the full width
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(lp);

这是最终结果。请注意,如果您需要对事物进行微调(例如更改背景等),则可以对对话框执行更多样式设置。当我以前必须这样做时,我通常使用这个方法,并在构建器类上使用setView()自定义对话框中使用的布局。

example

答案 1 :(得分:4)

解决此问题的另一种方法是使用:

import android.support.v7.app.AlertDialog;

而不是:

import android.app.AlertDialog;