Android LinearLayout:未显示正确的高度

时间:2013-10-23 05:35:17

标签: android xml background android-linearlayout

我有一个带有白色背景的LinearLayout,里面装满了一堆LinearLayouts和RelativeLayouts。我试图将父布局设置为具有最小高度,但它似乎仍然包含在内容中。

这是现在的样子。空白区域的最小高度应该大于现在的最小高度。 enter image description here

以下是我认为xml的相关部分:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contactViewScrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ABABAB" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="300dip"
        android:background="#FFFFFF"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/contactHeader"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#EDEDED"
            android:paddingLeft="10dp" >

            <TextView
                android:id="@+id/fullName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="175dip"
                android:paddingTop="5dp"
                android:textSize="18sp" />

            <View
                android:layout_width="1dp"
                android:layout_height="90dp"
                android:layout_toLeftOf="@+id/image"
                android:background="#000000" />

            <ImageView
                android:id="@+id/image"
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:layout_alignParentRight="true"
                android:background="#D6D6D6"
                android:contentDescription="@string/contact_image_description"
                android:scaleType="centerCrop" />
        </RelativeLayout>

        <View
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:background="#000000" />

        <LinearLayout
            android:id="@+id/mobile"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="10dp" >

            <TextView
                android:id="@+id/mobilePhoneHeading"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="15dp"
                android:text="@string/mobile_phone"
                android:textColor="#787878" />

            <TextView
                android:id="@+id/mobilePhone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingBottom="10dp"
                android:paddingTop="2dp"
                android:textSize="18sp" />
        </LinearLayout>

...以及许多其他LinearLayouts,都以编程方式设置为'GONE'。

有人可以建议修复吗?我无法弄清楚为什么白色部分占据的空间如此之小。

3 个答案:

答案 0 :(得分:3)

// try this
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contactViewScrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ABABAB" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:background="#FFFFFF"
            android:orientation="vertical" >

            <RelativeLayout
                android:id="@+id/contactHeader"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#EDEDED"
                android:paddingLeft="10dp" >

                <TextView
                    android:id="@+id/fullName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="175dp"
                    android:paddingTop="5dp"
                    android:textSize="18sp" />

                <View
                    android:layout_width="1dp"
                    android:layout_height="90dp"
                    android:layout_toLeftOf="@id/image"
                    android:background="#000000" />

                <ImageView
                    android:id="@+id/image"
                    android:layout_width="90dp"
                    android:layout_height="90dp"
                    android:layout_alignParentRight="true"
                    android:background="#D6D6D6"
                    android:contentDescription="contact_image_description"
                    android:scaleType="centerCrop" />
            </RelativeLayout>

            <View
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="#000000" />

            <LinearLayout
                android:id="@+id/mobile"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingLeft="10dp" >

                <TextView
                    android:id="@+id/mobilePhoneHeading"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingTop="15dp"
                    android:text="mobile_phone"
                    android:textColor="#787878" />

                <TextView
                    android:id="@+id/mobilePhone"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingBottom="10dp"
                    android:paddingTop="2dp"
                    android:textSize="18sp" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

答案 1 :(得分:1)

在第二个linearlayout中设置高度。现在它被设置为包装内容..喜欢

    <LinearLayout
        android:id="@+id/mobile"
        android:layout_width="match_parent"
        android:layout_height="50dp"  //for example
        android:orientation="vertical"
        android:paddingLeft="10dp" >

        <TextView
            android:id="@+id/mobilePhoneHeading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="15dp"
            android:text="@string/mobile_phone"
            android:textColor="#787878" />

        <TextView
            android:id="@+id/mobilePhone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp"
            android:paddingTop="2dp"
            android:textSize="18sp" />
    </LinearLayout>

答案 2 :(得分:1)

也可能是因为设备尺寸太大。我肯定建议使用线性布局的重量。无论是平板电脑还是手机,这都应该能够在所有设备上完美呈现。

如果您需要更多指导,或者您有任何体重问题,请告诉我们。