Java Android:LinearLayoutWeight

Java Android:LinearLayoutWeight,java,android,android-layout,Java,Android,Android Layout,我正在努力使我的布局更加统一。我的线性布局如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fi

我正在努力使我的布局更加统一。我的线性布局如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout android:id="@+id/LinearLayout01"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">

            <TextView 
                android:id="@+id/lblQuote" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"/>
        </LinearLayout>

        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">
           <TextView 
                android:id="@+id/lblLikes" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"
                android:text="27"/>
           <ImageView
                android:id="@+id/imgUp"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/thumbsup"/>
           <TextView 
                android:id="@+id/lblBuzzedTitle" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"
                android:text="Buzz Level:"/>
            <TextView 
                android:id="@+id/lblShared" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblSaid" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"/> 
        </LinearLayout>
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">
          <TextView 
                android:id="@+id/lblHates" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"
                android:text="14"/>
            <ImageView
                android:id="@+id/imgDown"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/thumbsdn"/>
           <TextView 
                android:id="@+id/lblBuzzed" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblDate" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblLocation" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"/> 
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">
          <TextView
            android:text=" "
            android:textSize="1pt"
            android:background="#6F7285"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>  

        </LinearLayout>
</LinearLayout>

所以我换成了这个:

    <?xml version="1.0" encoding="utf-8"?>  
<LinearLayout android:id="@+id/LinearLayout01"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:weightSum="1">

            <TextView 
                android:id="@+id/lblQuote" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:layout_weight="1"/>
        </LinearLayout>

        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:weightSum="8">
           <TextView 
                android:id="@+id/lblLikes" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="1"
                android:textSize="4pt"
                android:text="27"/>
           <ImageView
                android:id="@+id/imgUp"
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="1"
                android:src="@drawable/thumbsup"/>
           <TextView 
                android:id="@+id/lblBuzzedTitle" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="2"
                android:textSize="4pt"
                android:text="Buzz Level:"/>
            <TextView 
                android:id="@+id/lblShared" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="2"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblSaid" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="2"
                android:textSize="4pt"/> 
        </LinearLayout>
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:weightSum="8">
          <TextView 
                android:id="@+id/lblHates" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="1"
                android:textSize="4pt"
                android:text="14"/>
            <ImageView
                android:id="@+id/imgDown"
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="1"
                android:src="@drawable/thumbsdn"/>
           <TextView 
                android:id="@+id/lblBuzzed" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="2"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblDate" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="2"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblLocation" 
                android:layout_width="0dp" 
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:layout_weight="2"
                android:textSize="4pt"/> 
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:weightSum="1">
          <TextView
            android:text=" "
            android:textSize="1pt"
            android:background="#6F7285"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>  

        </LinearLayout>
</LinearLayout>

完成此操作后,我的布局在模拟器中变为空白。请告知。我不想切换到相对布局,我只想知道我在这段代码中犯了什么错误。谢谢

# 2011年6月3日编辑:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout android:id="@+id/LinearLayout01"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView 
                android:id="@+id/lblQuote" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Filler Text"/>
        </LinearLayout>
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left">
           <ImageView
                android:id="@+id/imgUp"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/thumbsup"
                android:layout_gravity="left"/>
           <TextView 
                android:id="@+id/lblLikes" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"
                android:text="10"
                android:layout_gravity="left"/>

           <TextView 
                android:id="@+id/lblBuzzedTitle" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:textSize="4pt"
                android:text="Buzz Level:"/>
            <TextView 
                android:id="@+id/lblShared" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:text="Shared By: Filler Name"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblSaid" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:text="Said By: Filler Name"
                android:textSize="4pt"/> 
        </LinearLayout>
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left">
            <ImageView
                android:id="@+id/imgDown"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/thumbsdn"
                android:layout_gravity="left"/>
          <TextView 
                android:id="@+id/lblHates" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="4pt"
                android:text="2"
                android:layout_gravity="left"/>

           <TextView 
                android:id="@+id/lblBuzzed" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:text="High"
                android:textSize="4pt"/>
            <TextView 
                android:id="@+id/lblDate" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:textSize="4pt"
                android:text="04/04/1987 4:32 PM"/>
            <TextView 
                android:id="@+id/lblLocation" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:textSize="4pt"
                android:text="Broomfield, CO"/> 
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="1">
          <TextView
            android:text=" "
            android:textSize="1pt"
            android:background="#6F7285"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>  

        </LinearLayout>
</LinearLayout>


在第二个版本中,第一个嵌套线性布局的布局高度为填充高度。这会将其他所有内容从屏幕上推下。无论何时,当您看到自己在宽度和高度上都使用“填充父对象”时,使用“布局权重”,您就知道自己做错了什么

你到底想完成什么


顺便说一句,你不需要像现在这样使用weightSum。如果未指定,它将自动汇总所有子视图的布局权重值。它的主要用途是仅分配总可用额外空间的一小部分。

在第二个版本中,第一个嵌套线性布局的布局高度为“填充”。这会将其他所有内容从屏幕上推下。无论何时,当您看到自己在宽度和高度上都使用“填充父对象”时,使用“布局权重”,您就知道自己做错了什么

你到底想完成什么


顺便说一句,你不需要像现在这样使用weightSum。如果未指定,它将自动汇总所有子视图的布局权重值。它的主要用途是只分配总可用空间的一小部分。

快速扫描告诉我它看起来是一样的吗?变化在哪里?快速扫描告诉我它看起来是一样的?更改在哪里?为了补充Ted的回答,为什么您要将
版面宽度设置为
0dp
?因此我在所有线性版面上用换行内容替换了填充父项。同样的结果也会出现。我感谢你到目前为止的迅速反应。谢谢你的帮助。我发现这个工具对诊断这类问题很有用。(我宁愿给你一个解决方案,也不愿给你建议,但我已经半睡半睡了,正准备睡觉。)阿尼尔凡:谢谢你的提示。用wrap_内容替换宽度成功了。这几乎完全解决了我的问题。我现在最希望的是前两列始终对齐。所以lblHates和Lblikes要对齐,imgHates和imgLikes要对齐。现在他们正在四处走动。请提供建议。您是否可以更新您的帖子,并包括它的外观、您希望它的外观以及现在的xml的图像?而且,我在你的布局中没有看到imgHates和imgLikes;你指的是imgDown和imgUp吗?另外,为了补充Ted的回答,你为什么要将
版面宽度设置为
0dp
?所以我在所有线性版面上用wrap\u内容替换了fill\u parent。同样的结果也会出现。我感谢你到目前为止的迅速反应。谢谢你的帮助。我发现这个工具对诊断这类问题很有用。(我宁愿给你一个解决方案,也不愿给你建议,但我已经半睡半睡了,正准备睡觉。)阿尼尔凡:谢谢你的提示。用wrap_内容替换宽度成功了。这几乎完全解决了我的问题。我现在最希望的是前两列始终对齐。所以lblHates和Lblikes要对齐,imgHates和imgLikes要对齐。现在他们正在四处走动。请提供建议。您是否可以更新您的帖子,并包括它的外观、您希望它的外观以及现在的xml的图像?而且,我在你的布局中没有看到imgHates和imgLikes;你是说伊姆格敦和伊姆古普吗?