0

かなりシンプルなレイアウトで気になるところがあります。ここにあります:

<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"ましたが、効果がないようです。

4

1 に答える 1

2

最善の方法は Relative layout を使用することですが、xml ファイルでいくつかの変更を行うよりも Linear レイアウトで同じことを行いたい場合は、最初に Linear レイアウトの高さを一致する親として設定します。

<LinearLayout android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizonatal">

-ビューを中央の垂直線で見えるようにするための 2 番目の do

android:layout_gravity="center_vertical"

同じプロパティ android:layout_gravity = "center_horizo​​ntal" 、2番目のテキストビューにも追加する必要があります。

両方のテキストビューが垂直方向の中央に表示されますが、一方が他方に隣接します。2 番目のビューを右側に表示するには、android:layout_marginLeft="xx dp" を追加して、xx の代わりに何らかの値を入力できると思います。

テキストの切り捨てに関する 3 番目の質問については、TextView にコンテンツをラップしないようにある程度のサイズを指定する必要がありandroid:layout_width ="25dp" ますandroid:ellipsize="end"

私はあなたがそれを得ると思います..実際、私は急いでいます。オフィスを出る時間です。

于 2013-01-16T14:20:22.003 に答える