То, что вы хотите сделать, возможно с помощью свойств android:layout_alignBottom
и android:layout_alignTop
, предоставленных RelativeLayout
его дочерним элементам и android:gravity
свойство TextView
.
Эти свойства позволяют установить нижний / верхний край представления в соответствии с нижним / верхним краем другого вида.Применяя их к TextView
, вы можете эффективно заставить TextView
соответствовать высоте элемента управления EditText
.Затем, используя свойство gravity, вы можете сделать текст в центре TextView
вертикально внутри элемента управления TextView
.
Следующий пример должен работать так, как вы предполагали:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp" >
<TextView android:id="@+id/user_name_label"
android:text="@string/user_name"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_alignBottom="@+id/user_name_text"
android:layout_alignTop="@id/user_name_text"
android:layout_marginRight="5dp"
android:gravity="center_vertical" />
<EditText android:id="@id/user_name_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/user_name_label" />
</RelativeLayout>