Android RelativeLayout - 如何将两个元素放在同一行?

时间:2012-07-20 10:30:59

标签: android android-layout relativelayout

问题是:我有一个TextView和一个EditText,如何将它们放在同一个“级别”?

http://postimage.org/image/o9l17a3zv/

如您所见,我想将“用户名”放在EditText的同一级别上......

这是我的代码:

<TextView
    android:id="@+id/account_creation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/account_creation"
    android:textSize="20sp"
    android:textStyle="bold" />

<!-- Username -->

<TextView
    android:id="@+id/username_registration"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@id/account_creation"
    android:layout_toLeftOf="@+id/username_new_account"
    android:text="@string/user_text"
    android:textSize="15sp" />

<EditText
    android:id="@+id/username_new_account"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/account_creation"
    android:layout_alignParentRight="true"
    android:ems="10"
    android:hint="@string/user_editext" >

    <requestFocus />
</EditText>

我想在两者上加上相同的“身高”值,但我不知道这是不是正确/更好的方式......

5 个答案:

答案 0 :(得分:3)

文本视图和编辑文本在同一行中触及父母布局的底线 试试这个。

android:layout_alignBottom="@+id/editText1"

这肯定会帮到你。

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText1"
        android:text="TextView" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/textView1"
        android:ems="10" >

        <requestFocus />
    </EditText>

</RelativeLayout>

感谢。

答案 1 :(得分:0)

android:gravity="center"是解决方案

答案 2 :(得分:0)

使用android:layout_toRightOfandroid:layout_toLeftOf属性,不包括相对布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="TextView" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" android:layout_toRightOf="@+id/textView1">

        <requestFocus />
    </EditText>

</RelativeLayout>

答案 3 :(得分:0)

试试这个

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<TextView
    android:id="@+id/account_creation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="account_creation"
    android:textSize="20sp"
    android:textStyle="bold" />

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/account_creation" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="user_text" />

    <EditText
        android:id="@+id/editText1"
        android:hint="Enter_username"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_toRightOf="@+id/textView1" >
    </EditText>
</RelativeLayout>

</RelativeLayout>

答案 4 :(得分:0)

您必须将文本置于TextView小部件中心,只需在TextView xml声明中使用android属性android:gravity

如果您希望文本垂直和水平居中,请使用:

 android:gravity="center"

如果您希望文本仅水平居中,请使用:

 android:gravity="center_horizontal"