子视图忽略包含嵌套布局的父布局,但使用它们

时间:2012-09-10 13:17:30

标签: android xml

我有一个微调器,它位于父布局中,它包含Spinner和嵌套的Relative布局。我遇到的问题是我似乎无法让Spinner与这个父布局对齐,即使我指定在父对齐时,它仍然与嵌套视图对齐。

澄清一下:我的微调器正对齐“relativeone”的左上角,而不是“back_layout”。

有什么想法吗?

相关的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/back_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000"
    android:gravity="center"
    >

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:background="#FFFFFF"
        android:entries="@array/spinner"
        android:layout_alignLeft="@+id/relativeone" />

    <RelativeLayout
        android:id="@+id/relativeone"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="center" 
        android:gravity="center">

        <RelativeLayout
            android:id="@+id/relativetwo"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:gravity="center" >

            <ImageView
                android:id="@+id/imageview"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_gravity="center"
                android:scaleType="fitXY" />

            <Button
                android:id="@+id/buttonone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="Take Photo" />
        </RelativeLayout>
    </RelativeLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

您需要对属性进行一些细微更改才能使其正常工作。

back_layout中删除中心对齐,从微调器中删除左对齐,并将父级中心添加到relativeone

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/back_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000" >
    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />
    <RelativeLayout
        android:id="@+id/relativeone"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerInParent="true"
        android:layout_gravity="center"
        android:gravity="center" >
        <RelativeLayout
            android:id="@+id/relativetwo"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:gravity="center" >
            <ImageView
                android:id="@+id/imageview"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_gravity="center"
                android:scaleType="fitXY" />
            <Button
                android:id="@+id/buttonone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:text="Take Photo" />
        </RelativeLayout>
    </RelativeLayout>
</RelativeLayout>

上面的布局会给你这个:

enter image description here