Android 3.1 Dialog的大小不合适

时间:2011-06-06 19:04:09

标签: android dialog android-3.0-honeycomb

我正在我的应用中创建一个自定义对话框,它在布局编辑器中看起来很好,但设备上的尺寸不合适。这是对话框的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@drawable/dialog_border"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/image"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:padding="10dp"
        android:src="@drawable/wifi" />
    <TextView
        android:layout_height="wrap_content"
        android:id="@+id/heading"
        android:layout_below="@+id/image"
        android:layout_width="wrap_content"
        android:layout_margin="10dp"
        android:layout_alignLeft="@+id/cancel_button"
        android:layout_alignRight="@+id/continue_button"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/lost_connection"
        android:layout_centerHorizontal="true" />
    <TextView
        android:layout_height="wrap_content"
        android:id="@+id/description"
        android:layout_width="wrap_content"
        android:layout_below="@+id/heading"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_centerHorizontal="true"
        android:layout_alignLeft="@+id/cancel_button"
        android:layout_alignRight="@+id/continue_button"
        android:gravity="center"
        android:layout_margin="10dp"
        android:text="@string/try_again" />
    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_toRightOf="@+id/cancel_button"
        android:layout_below="@+id/description"
        android:layout_centerHorizontal="true"
        android:id="@+id/dismiss_button"
        android:text="@string/dismiss" />
</RelativeLayout>

这就是布局编辑器中的样子: Layout Editor

但这就是它在设备上的样子: Device

顶部和右侧有一些奇怪的额外空间,按钮垂直压缩。

2 个答案:

答案 0 :(得分:2)

该空白区域是对话框标题。创建DialogFragment时可以将其关闭为:

DialogFragment df = new MyDialogFragment();
df.setStyle(DialogFragment.STYLE_NO_TITLE, 0);
df.show(ft, "dialog");

设置样式中的0允许平台选择合适的样式,而"dialog"是您要为对话框片段设置的任何标记。

答案 1 :(得分:1)

我认为顶部的额外奇怪空间是对话标题的位置。正如我在屏幕截图中看到的那样,您使用了一个对话框并将自定义视图扩展到该对话框中?

我想尝试使用yourDialog.getWindow()隐藏对话框的标题.requestFeature(Window.FEATURE_NO_TITLE);