为什么fill_parent不适用于Dialogs?

时间:2012-04-01 08:36:57

标签: android

我的对话框布局包含:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

对话框仍然显示为与其内容一样小。

我必须这样做:

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

...在onCreateDialog回调中,以便填充屏幕。

我在google开发网站上找不到任何对此行为的引用。

1 个答案:

答案 0 :(得分:1)

经过多次试验后回答我自己的问题。问题与使用Dialog类而不是AlertDialog有关。

简而言之,它没有用,因为我没有使用正确的工具和方法。解决方案是:继续使用Dialog类,然后使用d.getWindow()强制它,并从那里修改尺寸以使用AlertDialog并使布局膨胀:

LayoutInflater inflater = (LayoutInflater) getLayoutInflater();
View layout = inflater.inflate(R.layout.about, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);

此链接有很多帮助:Why does LayoutInflater ignore the layout_width and layout_height layout parameters I've specified?