android:layout_alignBaseline属性意外行为

时间:2015-12-10 20:55:53

标签: android android-layout android-edittext textview android-relativelayout

我正在尝试使用RelativeLayout设计非常简单的注册活动布局。 要将文本标签与要填充的文本对齐,我在TextView标签和右侧的EditView之间使用'layout_alignBaseline'属性。

以下布局按预期工作:

<?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">

    <TextView
        android:id="@+id/textTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:gravity="center"
        android:text="Register Here"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textRegisterFirstName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignBaseline="@id/editRegisterFirstName"
        android:text="First Name" />

    <EditText
        android:id="@+id/editRegisterFirstName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@id/textRegisterFirstName"
        android:layout_toRightOf="@id/textRegisterFirstName"
        android:layout_below="@id/textTitle"
        android:inputType="text" />

</RelativeLayout>

结果:

enter image description here

BUT

当我在EditText元素的layout_alignBaseline属性和TextView的layout_below属性(具有必要的名称更改)之间切换时,如下所示:

<TextView
    android:id="@+id/textRegisterFirstName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@id/textTitle"
    android:text="First Name" />

<EditText
    android:id="@+id/editRegisterFirstName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toEndOf="@id/textRegisterFirstName"
    android:layout_toRightOf="@id/textRegisterFirstName"
    android:layout_alignBaseline="@id/textRegisterFirstName"
    android:inputType="text" /> 

EditText元素“跳出”屏幕:

enter image description here

(蓝色矩形它安卓工作室指示它的位置)

有什么想法吗?

0 个答案:

没有答案