0dip layout_height或layouth_width的诀窍是什么?

时间:2011-08-28 10:37:17

标签: android layout height

我的意思是为什么有人希望他们认为是0dip高度? 我已经看过很多次,必须有某种技巧,但我不明白。

        <TextView android:gravity="top" android:textColor="#FFFF0000"
            android:textSize="20dip" android:text="TextView"
            android:layout_height="0dip" android:layout_width="fill_parent"
            android:id="@+id/contactName"></TextView>

为什么他们不使用例如wrap_content?他们想要实现什么目标?

3 个答案:

答案 0 :(得分:25)

这大量用于包含LinearLayout的观看次数。 LinearLayout知道有三个“布局”属性:

  1. android:layout_height
  2. android:layout_width
  3. android:layout_weight
  4. 您可以在tutorial project中找到android:layout_weight的示例。

    因此,当android:layout_weight X上使用View并且LinearLayout为水平时,则忽略X android:layout_width

    类似地,当在android:layout_weight X上使用View并且LinearLayout是垂直的时,则忽略X的android:layout_height

    这实际上意味着,您可以在这些被忽略的字段中添加任何内容:0dpfill_parentwrap_content。没关系。但是建议使用0dp,因此View不会对其高度或宽度进行额外计算(然后会被忽略)。这个小技巧简单地节省了CPU周期。

答案 1 :(得分:18)

这通常用于在linearlayout中有很多视图并且设置android:layout_weight =“1”以便两个视图占用相等的空间。例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

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

</LinearLayout>

在这种情况下,视图将采用与所有其他视图一样多的高度。

答案 2 :(得分:1)

android:layout_height="0dp"用于各种代码,因为:

  1. 这意味着由于其他布局限制,以后可以更改视图的高度。
  2. 这是一种常见做法,常见于相对和线性布局。
  3. 例如:

    android:layout_height = "0dp"
    android:layout_weight = "1.0"
    

    设置为“0dp”时的高度或宽度,主要与“重量”组合使用。例如你想填充所有可用的高度空间然后使用上面的代码,并且像宽度一样明智。