Android 4.0自定义对话 - 可能的Bug?

时间:2012-02-10 09:20:40

标签: java android

我正在使用以下样式创建自定义Dialog:

<style name="FullHeightDialog" parent="android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

我把对话框的结构如下:

public CustomDialog(Context context) {
    super(context, R.style.FullHeightDialog);
    setContentView(R.layout.custom_dialog_layout);
}

custom_dialog_layout根是RelativeLayout,layout_margin =“20dp”,在里面我把LinearLayout带了3个简单的按钮。

我希望Dialog延伸到整个高度和内容宽度,在这种情况下是带有3个按钮的LinearLayout。

它在Android Gingerbread上工作正常,但在Android 4上,它从未延伸超过屏幕的约40%。 在Android 4上,我必须以编程方式设置:

LayoutParams params = getWindow().getAttributes();
params.width = LayoutParams.MATCH_PARENT;

使其按预期工作。即使这样,它也显示出非预期的结果,但仍然可以接受。

这是冰淇淋三明治的错误还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的问题可能来自android:style/Theme.Dialog,因为它可能会根据Android版本而发展。

解决方案:

  1. 完全定义您自己的风格,不参考android:style/Theme.Dialog
  2. 引用android:style/Theme.Dialog但在样式项中添加边距/填充布局定义