2011-06-22 24 views

回答

104

術語baseline comes from typography。這是文字中的無形線條字母。

例如,假設您將兩個TextView元素相鄰放置。你給第二個TextView一個很大的填充(比如20dp)。如果將layout_alignBaseline添加到第二個元素,則文本將「scoot up」以與第一個元素的基線對齊。來自這兩個元素的文本將顯示爲就像它們寫在同一條不可見的行上一樣。

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <TextView 
     android:id="@+id/text1" 
     android:text="aatlg" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    <TextView 
     android:text="joof" 
     android:background="#00ff00" 
     android:padding="20dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/text1" 
     android:layout_alignBaseline="@id/text1" 
     /> 
</RelativeLayout> 
+14

添加說明圖片會很好 – htafoya

+1

也默認爲true –

19

這裏是一個可以解釋克里斯蒂安的回答視覺解釋:

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <TextView 
     android:id="@+id/text1" 
     android:text="Lorem" 
     android:background="@android:color/holo_blue_light" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
    <TextView 
     android:text="Ipsum" 
     android:background="@android:color/holo_orange_light" 
     android:padding="20dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/text1" 
     <!-->>>>>>>--> android:layout_alignBaseline="@id/text1" /> 
</RelativeLayout> 

此代碼將是這樣的:

with android:layout_alignBaseline

現在,如果我刪除android:layout_alignBaseline屬性,相同的佈局看起來像這樣:without android:layout_alignBaseline

有趣的是,觀察到對第二視圖的高度有影響(在第一種情況下,應用於視圖頂部的填充爲而不是)。