布局中的元素相对高度

时间:2014-11-04 22:38:58

标签: android android-layout

我已经看到,通过使用相对布局(以下代码仅显示相关属性),可以将元素的 width 设置为屏幕宽度的一小部分:

<LinearLayout>
  <ImageView
    android:layout_width="0dp"
    android:layout_weight=".40" />
  </imageView>
  <TextView
    android:layout_width="0dp"
    android_layout_weight=".60" />
</LinearLayout>

但是......显然,对于分配元素的比例高度,不能做同样的技巧。如果我尝试将layout_height设置为0dp,则Eclipse会抱怨。如果我想要带有标题的图像,图像占据屏幕高度的40%并且下面的标题达到60%,我该怎么办?

2 个答案:

答案 0 :(得分:0)

您确实可以为LinearLayout的水平和垂直方向分配权重。

水平方向示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".40" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".60" />

</LinearLayout>

垂直方向示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".40" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".60" />

</LinearLayout>

另外,知道您不必为权重指定浮点数是有用的。 Android将简单地总结所有权重,然后除以总数以获得每个权重的百分比。因此,分别使用4和6作为layout_weights也可以正常工作。

答案 1 :(得分:0)

将android:orientation =“vertical”添加到您的布局,然后将layout_height = 0dp和weight设置为所需的值。

所以:

<LinearLayout
   android:orientation="vertical">
   <ImageView
     android:layout_height="0dp"
     android:layout_weight=".40" />
   </imageView>
   <TextView
     android:layout_height="0dp"
     android_layout_weight=".60" />
</LinearLayout>