Каков трюк с 0dip layout_height или layouth_width?
Я имею в виду, почему кто-то хочет, чтобы они считались высотой 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? чего они хотят достичь?
Ответы
Ответ 1
Обычно это используется при наличии большого количества представлений внутри 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
Это сильно используется для представлений с LinearLayout
. Существует три атрибута "layout", которые LinearLayout
знает:
-
android:layout_height
-
android:layout_width
-
android:layout_weight
Вы можете найти пример с android:layout_weight
в учебном проекте.
Поэтому, когда android:layout_weight
используется на View
X и LinearLayout
является горизонтальным, тогда X android:layout_width
просто игнорируется.
Аналогично, когда android:layout_weight
используется на View
X и LinearLayout
является вертикальным, тогда X android:layout_height
игнорируется.
Это на самом деле означает, что вы можете поместить что-нибудь в те игнорируемые поля: 0dp
или fill_parent
или wrap_content
. Это не имеет значения. Но рекомендуется использовать 0dp
, поэтому View
не выполнять лишний расчет их высоты или ширины (которые затем игнорируются). Этот небольшой трюк просто экономит циклы процессора.
Ответ 3
android:layout_height="0dp"
используется в различных кодах, потому что:
- Это означает, что высота представления может быть изменена позже из-за других ограничений компоновки.
- Это обычная практика и часто наблюдается в относительных и линейных макетах.
например:
android:layout_height = "0dp"
android:layout_weight = "1.0"
Высота или ширина при установке на "0dp" в основном используются в сочетании с "весом". например вы хотите заполнить все доступное пространство для высоты, а затем использовать приведенный выше код и, как мудрый, в том же случае для ширины.