android:layout_width以及布局权重用法

时间:2012-12-18 05:24:30

标签: android android-layout android-widget

当我使用android:layout_width="0px"属性时,为什么要放ndroid:layout_weight?例如,以下是我的main.xml文件,并且我使用了android:layout_width="wrap_content",并且一切正常,那么为什么在使用layout_weight属性时应该使用android:layout_width="0px"

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="horizontal">
<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText" android:hint="enter your name"
        android:layout_weight="3"/>
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send"
        android:id="@+id/button"
        android:layout_weight="0"/>
</LinearLayout>

这就是我的布局: enter image description here

3 个答案:

答案 0 :(得分:2)

你当然不必。另外weight=0没有多大意义。 weight参数控制窗口小部件占用的布局中剩余空间的哪个部分。因此,设置width=0有效地告诉它仅占用剩余空间。如果你设置width=30,它将占用30 px | dp +所有剩余的香料。将0设置为宽度可以更轻松地在不同的屏幕尺寸上获得可预测的结果。

一个常见的模式是有两个小部件width=0和相同的权重,使它们在父容器内的大小相同,你不关心实际的大小(宽度或高度)。

答案 1 :(得分:1)

布局重量本身用于根据重量属性给出适当的宽度。 查看this

  

此属性根据方式为视图指定“重要性”值   屏幕上应该占用很多空间。重量值更大   允许它展开以填充父视图中的任何剩余空间。

所以eclipse建议将宽度设为0px

答案 2 :(得分:1)

layout_weight您可以指定多个视图之间的大小比例。

E.g。你有一个Tabelview和一个图像,它应该显示布局的一些额外信息。表格应使用屏幕的3/4,图像应使用屏幕的1/4。然后,您将tabelview的layout_weight设置为3,将图像的layout_weight设置为1.

要使其正常工作,您还必须将高度或宽度设置为0px。

http://developer.android.com/guide/topics/ui/declaring-layout.html#CommonLayouts