0

假设我有一个垂直的LinearLayout和几个TextViewslayout_height设置为wrap_content。这样最后一个 TextView 在底部被剪裁: 最后一个视图被剪裁

设置layout_height="match_parent"layout_weight="1"为每个TextView“解决”这个问题:是否适合屏幕

不幸的是,这导致视图之间的间隔非常大portrait layoutTextView 之间的间隔较大

那么,有没有办法在屏幕上排列项目,以便:

  1. 它们都适合屏幕
  2. 如果屏幕很大,它们应该一个一个放置,它们之间没有巨大的空间,但是底部有空闲空间?

提前非常感谢。

4

1 回答 1

1

这是您应该为不同配置使用不同布局资源的情况之一。例如,根据您的示例,您可以有一个layout-land文件夹,用于当手机处于横向状态时,并且在该布局中使用 xml 布局,其中TextViews所有layout_weight="1". 对于纵向(和默认布局),您可以在layout文件夹中有一个布局文件,例如layout-land您将在以下位置添加此元素的布局文件TextViews

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

这个空View将“吸收”一些空白空间,因此您之间不会有太大的差距TextViews

不同屏幕的不同布局文件可以通过对不同尺寸(正常、大、非常大)的屏幕结合不同的方向(纵向与横向)使用进一步细化的布局来改进。

当然,您可以编写自己的布局管理器来定位孩子TextViews,但这并不容易。

于 2012-07-21T13:48:38.533 回答