2014-03-04 46 views
1

我想爲我的佈局添加一個簡單的水平分隔線(對此使用View)。使用LinearLayout中的match_parent的高度來查看wrap_content的高度正在破壞佈局

現在的問題是,視圖似乎是在整個佈局的高度,而不僅僅是其內部的LinearLayout。它內部的LinearLayout具有wrap_content的高度。

這裏是我的佈局看起來像以前一樣添加這些分隔:

enter image description here

,這裏是什麼樣子AFTER:

enter image description here

這裏是添加這些後XML 2意見:

<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> 

爲什麼會發生這種情況,我該如何解決?謝謝。

+0

沒有違法,但該佈局過於複雜,花時間做它的意義。考慮到每個部分(卡路里,蛋白質,碳水化合物和脂肪)具有相同的要求,我會創建一個帶有標籤的單一通用佈局,今天總計和百分比TextViews,然後使用來簡化事情。對不起,沒有回答你的問題,但如果你這樣做,你可能會幫你一個忙。 – Squonk

回答

1

較低的行中的3個佈局必須

android:layout_height="wrap_content" 
+0

熱潮!完善!謝謝。 – scarhand

相關問題