Android 使用“匹配高度\父级内部线性布局”和“包裹高度\内容”的视图正在破坏布局

Android 使用“匹配高度\父级内部线性布局”和“包裹高度\内容”的视图正在破坏布局,android,android-linearlayout,android-view,Android,Android Linearlayout,Android View,我试图在布局中添加一个简单的水平分隔符(使用视图) 现在的问题是,视图似乎占据了整个布局的高度,而不仅仅是其内部的线性布局。其内部的LinearLayout具有包裹内容的高度 在添加这些分隔符之前,我的布局如下所示: 下面是它之后的样子: 以下是添加这两个视图后的XML: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and

我试图在布局中添加一个简单的水平分隔符(使用视图)

现在的问题是,视图似乎占据了整个布局的高度,而不仅仅是其内部的线性布局。其内部的LinearLayout具有包裹内容的高度

在添加这些分隔符之前,我的布局如下所示:

下面是它之后的样子:

以下是添加这两个视图后的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>


为什么会发生这种情况?我如何修复它?谢谢。

下一行的3个布局必须具有

android:layout_height="wrap_content"

无意冒犯,但布局过于复杂,无法花时间理解它。考虑到每个部分(卡路里、蛋白质、碳水化合物和脂肪)都有相同的要求,我将创建一个带有标签、today、total和percent文本视图的通用布局,然后使用它来简化事情。很抱歉,这不能回答你的问题,但如果你那样做的话,你可能会帮自己一个忙。