在LinearLayout内使用height_parent的高度查看并使用wrap_content的高度打破布局

时间:2014-03-04 22:42:54

标签: android android-linearlayout android-view

我正在尝试为我的布局添加一个简单的水平分隔符(使用View)。

现在的问题是,View似乎占据了整个布局的高度,而不仅仅是它内部的LinearLayout。它内部的LinearLayout的高度为wrap_content。

这是我的布局在添加这些分隔符之前的样子:

enter image description here

以下是它的样子:

enter image description here

添加这两个视图后,这是XML:

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

    <TextView
        android:id="@+id/current_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:text="Tuesday, March 3, 2014"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="16sp" />

    <View
        android:id="@+id/Separator"
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:background="?android:attr/listDivider" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/calories_label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Calories"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/grey"
            android:textSize="30sp" />

        <TextView
            android:id="@+id/calories_today"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2500"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="60sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/calories_total"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="/2750"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@color/darkgrey"
            android:textSize="30sp" />

        <TextView
            android:id="@+id/calories_percent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="(75%)"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="@color/darkgrey"
            android:textSize="30sp" />
    </LinearLayout>

    <View
        android:id="@+id/Separator"
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:background="?android:attr/listDivider" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:orientation="vertical"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingTop="@dimen/activity_vertical_margin" >

            <TextView
                android:id="@+id/protein_label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Protein"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@color/grey"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/protein_today"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="60"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textSize="30sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/protein_total"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="/80"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/darkgrey"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/protein_percent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="(75%)"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/darkgrey"
                android:textSize="16sp" />
        </LinearLayout>        

        <View
            android:id="@+id/Separator"
            android:layout_width="5dp"
            android:layout_height="match_parent"
            android:background="?android:attr/listDivider" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:orientation="vertical"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingTop="@dimen/activity_vertical_margin" >

            <TextView
                android:id="@+id/carbs_label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Carbs"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@color/grey"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/carbs_today"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="250"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textSize="30sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/carbs_total"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="/300"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/darkgrey"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/carbs_percent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="(75%)"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/darkgrey"
                android:textSize="16sp" />
        </LinearLayout>

        <View
            android:id="@+id/Separator"
            android:layout_width="5dp"
            android:layout_height="match_parent"
            android:background="?android:attr/listDivider" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center_horizontal"
            android:orientation="vertical"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingTop="@dimen/activity_vertical_margin" >

            <TextView
                android:id="@+id/fat_label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Fat"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@color/grey"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/fat_today"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="50"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textSize="30sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/fat_total"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="/80"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/darkgrey"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/fat_percent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="(75%)"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@color/darkgrey"
                android:textSize="16sp" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

为什么会发生这种情况,我该如何解决?谢谢。

1 个答案:

答案 0 :(得分:1)

下排的3个布局必须

android:layout_height="wrap_content"