かなりシンプルなレイアウトで気になるところがあります。ここにあります:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/id1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:ellipsize="end"
android:maxLines="1"/>
<TextView
android:id="@+id/id2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
3つの質問:
親LinearLayout内の両方のTextView(またはより適切に言えば、これらのビュー内のテキスト)を垂直方向に中央揃えするにはどうすればよいですか?左側のビューは垂直方向に中央揃えでOKですが、右側のビュー(フォントが小さいため)はそうではありません。上部が縦に中央に配置されているようです。私は明らかに2番目のビューのlayout_gravityで遊んでみましたが、それは何の違いもありません。私が解決できる唯一の方法は、2番目のTextViewをLinearLayoutでラップし、そのレイアウトの高さパラメーターをmatch_parentに設定することです(ただし、これは正しい方法ですか?)
同様に、左側のビューを左側の水平方向の中央に配置し、右側のビューを右側の水平方向の中央に配置します。現在、右側のビューは左側のビューのすぐ隣に配置されています。これを解決できる唯一の方法は、2つのテキストビューの間に次のようなものを追加することです。
<TextView android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:text="">
基本的に、両方のTextViewのテキストの長さに応じてサイズが小さくなるスペーサーとして機能します
ビューの結合されたテキストが水平方向に収まらない場合は、左側のビューのテキストを切り捨てたいと思います。改行に折り返す必要はありません。現在、左側のビューのテキストは、右側のテキストを親から単に「押し出し」ます。
android:maxLines="1"
それを達成する方法がわかりません(テキストが折り返されるのを防ぐために追加することは別として)。試しandroid:ellipsize="end"
ましたが、効果がないようです。