如果小部件不适合LinearLayout,则缩小小部件

时间:2012-07-21 10:11:24

标签: android android-layout android-linearlayout

假设我有一个垂直LinearLayout和多个TextViewlayout_height设置为wrap_content。 这样最后一个TextView会在底部剪切: Last view is clipped

为每个layout_height="match_parent"设置layout_weight="1"TextView解决了这个问题:Does fit into the screen

不幸的是,这导致portrait layoutLarge intervals between TextView

中的视图间隔非常大

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

  1. 它们都适合屏幕
  2. 如果屏幕很大,它们应该逐个放置,它们之间没有大的空间,但是底部有自由空间 ?
  3. 提前多多感谢。

1 个答案:

答案 0 :(得分: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但这不容易做到。