0

に設定された垂直LinearLayoutといくつかTextViewの があるとします。このようにして、最後の TextView が下部で切り取られます。 layout_heightwrap_content最後のビューはクリップされています

と を設定するlayout_height="match_parent"layout_weight="1"TextViewこの問題が「解決」されます。画面に収まる

残念ながら、これにより のビュー間の間隔が非常に大きくなりますportrait layout:TextView 間の大きな間隔

したがって、次のように画面上のアイテムを配置する方法はありますか?

  1. それらはすべて画面に収まります
  2. 画面が大きい場合は、大きなスペースを空けずに1つずつ配置する必要がありますが、下部に空きスペースがありますか?

よろしくお願いします。

4

1 に答える 1

1

これは、構成ごとに異なるレイアウトリソースを使用する必要がある場合の1つです。たとえば、例に基づいてlayout-land、電話が横向きになっているときのフォルダを作成し、そのレイアウトですべてのTextViewsが持つxmlレイアウトを使用できますlayout_weight="1"。縦向き(およびデフォルトのレイアウト)の場合、フォルダー内に、 :の後にこの要素を追加するlayoutファイルのようなレイアウトファイルを含めることができます。layout-landTextViews

 <View        
        android:layout_width="wrap_content"
        android:layout_weight="3"
        android:layout_height="0dp" />

この空Viewは空のスペースの一部を「吸収」するので、の間に大きなギャップはありませんTextViews

さまざまな向き(縦向きと横向き)を組み合わせたさまざまなサイズ(通常、大、非常に大)の画面にさらに洗練されたレイアウトを使用することで、さまざまな画面のさまざまなレイアウトファイルを改善できます。

もちろん、子を配置するために独自のレイアウトマネージャーを作成することもできますTextViewsが、これは簡単なことではありません。

于 2012-07-21T13:48:38.533 に答える