我的意思是为什么有人希望他们认为是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?他们想要实现什么目标?
答案 0 :(得分:25)
这大量用于包含LinearLayout
的观看次数。 LinearLayout
知道有三个“布局”属性:
android:layout_height
android:layout_width
android:layout_weight
您可以在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
。
这实际上意味着,您可以在这些被忽略的字段中添加任何内容:0dp
或fill_parent
或wrap_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"
用于各种代码,因为:
例如:
android:layout_height = "0dp"
android:layout_weight = "1.0"
设置为“0dp”时的高度或宽度,主要与“重量”组合使用。例如你想填充所有可用的高度空间然后使用上面的代码,并且像宽度一样明智。