Android布局不如预期

时间:2013-07-04 10:44:13

标签: android relativelayout

所以我是Android的布局初学者,我正在学习RelativeLayout。我试图做以下事情:

enter image description here

然而,我进入虚拟设备的所有内容都是占据100%空间(宽度和高度)的名称字段。
enter image description here

这是我的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/root">
    <EditText android:id="@+id/name" 
        android:layout_alignParentLeft="true" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:hint = "Name"/>
    <EditText android:id="@+id/phone" 
        android:layout_below="@id/name" 
        android:layout_alignParentRight="true" 
        android:layout_weight="0.4" 
        android:layout_height="wrap_content" 
        android:layout_width="0dp" 
        android:hint="Phone" />
    <EditText android:id="@+id/email" 
        android:layout_below="@id/phone" 
        android:layout_alignParentRight="true" 
        android:layout_weight="0.4" 
        android:layout_height="wrap_content" 
        android:layout_width="0dp" 
        android:hint="Email" />
    <EditText android:id="@+id/dob" 
        android:layout_below="@id/email" 
        android:layout_alignParentRight="true" 
        android:layout_weight="0.4" 
        android:layout_height="wrap_content" 
        android:layout_width="0dp" 
        android:hint="D.O.B." />
    <EditText android:id="@+id/address" 
        android:layout_below="@id/phone" 
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@id/dob"
        android:layout_weight="0.6" 
        android:layout_height="0dp" 
        android:layout_width="match_parent" 
        android:hint="Address" />
    <Button android:id="@+id/submit" 
        android:layout_weight="1.0" 
        android:layout_below="@id/address" 
        android:layout_height="match_parent" 
        android:layout_width="0dp" 
        android:text="Submit"/>
</RelativeLayout>  

出了什么问题?

3 个答案:

答案 0 :(得分:2)

以下是输出的xml。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<EditText
    android:id="@+id/name"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:hint="Name" />

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true
        android:layout_weight="-10"
        android:hint="Phone" />

    <EditText
        android:id="@+id/email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/phone"
        android:layout_weight="0.4"
        android:hint="Email" />

    <EditText
        android:id="@+id/dob"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/email"
        android:layout_weight="0.4"
        android:hint="D.O.B." />

    <EditText
        android:id="@+id/address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/phone"
        android:layout_toLeftOf="@id/dob"
        android:layout_weight="0.6"
        android:hint="Address" />
</RelativeLayout>

<Button
    android:id="@+id/submit"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"                
    android:text="Submit" />

</LinearLayout>

答案 1 :(得分:1)

将name元素的layout_height更改为: android:layout_height="wrap_content"

答案 2 :(得分:1)

将布局XML更改为上述内容:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<EditText
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:hint="Name" />

<LinearLayout
    android:id="@+id/linear"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/name"
    android:orientation="horizontal"
    android:layout_marginBottom="60dp"
    android:weightSum="1" >

    <EditText
        android:id="@+id/address"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.6"
        android:hint="Address" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_weight="0.4"
        android:weightSum="3" >

        <EditText
            android:id="@+id/phone"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:hint="Phone" />

        <EditText
            android:id="@+id/email"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:hint="Email" />

        <EditText
            android:id="@+id/dob"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:hint="D.O.B." />
    </LinearLayout>
</LinearLayout>

<Button
    android:id="@+id/submit"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_alignParentBottom="true"
    android:text="Submit" />

</RelativeLayout>

希望有所帮助:)