13

这是我正在处理的 xml 布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF"
    android:orientation="vertical" >

    <ScrollView 
        android:layout_weight="2" 
        android:id="@+id/scrollConfirm" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

  </ScrollView>

  <LinearLayout 
      android:layout_marginTop="20px"
      android:layout_weight="1" 
      android:id="@+id/imageNumpad" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent">
        <ImageView android:src="@drawable/myicon"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="#FFFFFF"
        />
   </LinearLayout>
</LinearLayout>

由于我已经设置了 ScrollViewlayout_weight="2"和 LinearLayout(子),layout_weight="1"因此我预计 ScrollView 将使用 LinearLayout 两倍的可用空间。但我得到相反的结果。ScrollView 比 LinearLayout 小。而如果我为 ScrollViewlayout_weight="1"和 LinearLayout设置layout_weight="2",则 ScrollView 大于 LinearLayou。

这怎么可能??

4

1 回答 1

24

权重是相反的,因为您使用match_parent的是layout_height. 当总和大于 时,权重用于分配剩余的空白空间或带走空间LinearLayout。将您的高度设置为0dip它将起作用。

即,layout_height = "0dip"为 bothScrollView和 inner设置LinearLayout

参考 :

将 layout_weight 与 Android 布局一起使用

于 2013-04-18T15:10:27.873 回答