3

我想要做的是有一個TextView,在它的右邊有一個editText,它佔據了剩下的空間。 textView應該沿着editText垂直居中。現在我可以使用線性佈局來做到這一點,但我更願意在相關佈局中做到這一點。將textview垂直居中放置一個EditText

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="10dp"> 
    <TextView 
      android:id="@+id/loginText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Login:" 
      android:paddingRight="20dp" /> 

<EditText 
      android:id="@+id/login" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@id/loginText" /> 

</RelativeLayout> 

回答

3

添加android:layout_gravity="center_vertical"到您的TextView

這會給TextView的父垂直居中


+0

如果TextView的高度是一樣的高度爲EDITTEXT會工作。但情況並非如此。 – CoreyS 2010-12-14 21:08:31

+0

你可以將edittext和textview設置爲layout_gravity =「center_vertical」嗎?那會有訣竅嗎? – slim 2010-12-14 21:14:11

+0

android:gravity =「center_vertical」適合我 – 2013-11-18 17:38:26

4

你想要做什麼通過使用由提供的android:layout_alignBottomandroid:layout_alignTop性能可能RelativeLayout以及TextViewandroid:gravity財產。

這些屬性允許您設置視圖的底部/頂部邊緣以匹配另一個視圖的底部/頂部邊緣。通過將它們應用於TextView,可以使TextViewEditText控件的高度匹配。然後,利用重力屬性,您可以將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>