如何在对话框中对齐元素?

时间:2013-08-09 13:53:27

标签: android android-alertdialog

我正在尝试创建一个对话框,其显示如下:

enter image description here

我正在使用以下axml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget32"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <Button
        android:id="@+id/btnCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/btnSetDateTime" />
    <Button
        android:id="@+id/btnSetDateTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Set"
        android:layout_alignParentBottom="true" />
    <DatePicker
        android:id="@+id/datePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:calendarViewShown="false"
        android:layout_centerInParent="true" />
    <TimePicker
        android:id="@+id/timePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/datePicker1"/>
</RelativeLayout>

不幸的是,它出现在屏幕上

enter image description here

我需要做什么才能让它在图纸中显示?

3 个答案:

答案 0 :(得分:0)

您的DatePicker有一些混乱的布局属性。首先你用'alignParentTop'设置它是整个视图的顶部然后你水平居中(到目前为止很好),但是你告诉它centreInParent它似乎与你想要做的相反。 此外,从草图的外观来看,日期和时间选择器的宽度应为match_parent(可能具有相同的边距参数,如果您希望下面的按钮填充它们之间的视图宽度,我会将它们放在水平方向linearlayout。< / p>

希望这有帮助。

答案 1 :(得分:0)

使用父级verticalLayout,然后使用子级水平LinearLayout作为按钮。

答案 2 :(得分:0)

您不必使用FrameLayout,只需使用LinearLayout看起来适合您,如下所示:

  

    <DatePicker
            android:id="@+id/datePicker1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:calendarViewShown="false" />

    <TimePicker
            android:id="@+id/timePicker1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:orientation="horizontal">
        <Button
                android:id="@+id/btnCancel"
                android:layout_width="100dip"
                android:layout_height="wrap_content"
                android:text="Cancel" />
        <Button
                android:id="@+id/btnSetDateTime"
                android:layout_width="100dip"
                android:layout_height="wrap_content"
                android:text="Set"/>
    </LinearLayout>