android - 在 LinearLayout 中使用 match_parent 高度和 wrap_content 高度的 View 正在破坏布局

标签 android android-linearlayout android-view

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

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

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

enter image description here

这是它之后的样子:

enter image description here

这是添加这 2 个 View 后的 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"

关于android - 在 LinearLayout 中使用 match_parent 高度和 wrap_content 高度的 View 正在破坏布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22184748/

相关文章:

java - 显示 Math.tan() 的值(以度为单位)?

android - MediaController 定位 - 绑定(bind)到 VideoView

android - TextView Ellipsize (...) 不工作

android - 当您想要切换 2 个可见 View 之一时如何使用布局权重

android - RecyclerView.Adapter 可以/应该访问 ViewHolders 吗?

android - 带有动画和圆角的不确定 ProgressBar

java - 从适配器 android 返回更改的 arrayList

java - 如何从字符串中获取drawable?

java - 检查 sqlite 中的文本

android - 图像拉伸(stretch)