相対レイアウトのコンテキストで使用される場合、「ベースライン」とは何を指しますか?おそらく簡単な質問ですが、ドキュメントとグーグルにはヒントがありません。
用語 ベースラインはタイポグラフィに由来 。それは、テキストにある目に見えない行文字です。
たとえば、2つのTextView
要素を隣り合わせに配置するとします。 2番目のTextView
に大きなパディング(たとえば20dp)を与えます。 layout_alignBaseline
を2番目の要素に追加すると、テキストは最初の要素のベースラインに合わせて「スクートアップ」します。両方の要素のテキストは、同じ見えない行に書かれているように表示されます。
<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>
以下に、Cristianの答えを明確にする視覚的な説明を示します。
<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>
このコードは次のようになります。
Android:layout_alignBaseline
属性を削除すると、同じレイアウトは次のようになります:
オレンジ色のビューの高さに影響があることを観察するのは興味深いことです(最初の場合、パディングはビューの上部にnotが適用されます)。