4

複数のテキストビューを含む水平線形レイアウトがあります。レイアウトの幅はfill_parentで、高さはwrap_contentです。私の問題は、テキストビューがデバイスの許可された画面幅よりも長い場合、最後のテキストビューを新しい行に折り返すのではなく、右側に壊してしまうことです(これは私の望ましい結果です)。wrap_contentの高さを設定すると、これを解決できると思いました。

複数のテキストビューを含む線形レイアウトが、親の幅を超えた場合にテキストビューをラップするようにするには、どうすればよいですか?

これが私のレイアウトの抜粋です:

<LinearLayout
                                android:id="@+id/linearLayout20"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content"
                                android:paddingTop="3dip" >

                                <TextView android:layout_height="wrap_content" android:textColor="@color/black" android:text="Car Info:  " android:id="@+id/textView023" android:layout_width="wrap_content" android:textStyle="bold" android:textSize="@dimen/item_main_text_size"></TextView>
                                <TextView android:layout_height="wrap_content" android:textColor="@color/black" android:text="2005" android:id="@+id/autorental_item_caryear" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
                                <TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="Chevy" android:id="@+id/autorental_item_carmake" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
                                <TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="Rio" android:id="@+id/autorental_item_carmodel" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
                                <TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="-" android:id="@+id/textView2" android:paddingRight="3dip" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
                                <TextView android:layout_height="wrap_content" android:textColor="@color/black" android:paddingLeft="3dip" android:text="Red" android:id="@+id/autorental_item_carcolor" android:layout_width="wrap_content" android:textSize="@dimen/item_main_text_size"></TextView>
                            </LinearLayout>

長いテキストビューでは、次のようにレンダリングされます。

Car Info:  2002 Chevrolet Silverado - Pu
                                     rp
                                     le 

そして私はそれをこのようなものにしたいと思います:

Car Info:  2002 Chevrolet Silverado - 
Purple
4

2 に答える 2

3

複数のTextView(またはボタンなどの他のもの)を含むLinearLayoutでは、望ましい結果は得られません。

すべての水平/垂直線形レイアウトは、各子が独自のことを実行できる水平/垂直境界を子ビューに提供します。したがって、各ビューは、境界のない方向、この場合は垂直方向にのみ拡張できます。

これが問題を説明するサンプルです。外側のダッシュは画面の境界を表します。

| First Text- | Short text | Long text will take all the space possible | T |
| View with   |            |                                            | e |
| additional  |            |                                            | x |
| given       |            |                                            | t |
| maximum     |            |                                            |   |
| width. Long |            |                                            |   |
| text makes  |            |                                            |   |
| it expand   |            |                                            |   | 
| down        |            |                                            |   |

すべてのテキストを単一のテキストビューに配置することで、これを解決できます。次に、素敵なリストを作成したい場合は、中に入れた文字列をフォーマットする必要があります。

于 2012-04-16T13:34:40.970 に答える
1

を使用してその結果を達成することはできませんLinearLayout。この場合の最善の解決策は、TextViewで複数のスタイルを持つ単一のものを使用することだと思います(テキストに動的な値が必要な場合)。ここで洞察を見てください: TextView内に複数のスタイルを持つことは可能ですか?

代わりに静的テキストがある場合は、strings.xml内のCDATAブロックでhtml準拠の値を囲み、レイアウトで直接使用できます。

于 2012-04-16T13:48:26.090 に答える