Каков трюк с 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? Чего они хотят достичь?

Solutions Collecting From Web of "Каков трюк с 0dip layout_height или layouth_width?"

Обычно это используется при наличии большого количества представлений внутри линейной очереди и установки андроида: 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> 

В этом случае представление будет занимать столько же высоты, сколько и все другие виды.

Это сильно используется для представлений с LinearLayout . Есть три атрибута «layout», которые LinearLayout знает о:

  1. android:layout_height
  2. android:layout_width
  3. android:layout_weight

Вы можете найти пример с android:layout_weight в учебном проекте .

Поэтому, когда android:layout_weight используется в View X, а LinearLayout является горизонтальным, тогда android:layout_width X android:layout_width просто игнорируется.

Аналогично, когда android:layout_weight используется на View X, а LinearLayout – вертикально, тогда android:layout_height X android:layout_height игнорируется.

Это на самом деле означает, что вы можете поместить что-нибудь в те игнорируемые поля: 0dp или fill_parent или wrap_content . Это не имеет значения. Но рекомендуется использовать 0dp поэтому View не делает дополнительного вычисления их высоты или ширины (которые затем игнорируются). Этот небольшой трюк просто экономит циклы процессора.

android:layout_height="0dp" используется в различных кодах, потому что:

  1. Это означает, что высота представления может быть изменена позже из-за других ограничений компоновки.
  2. Это обычная практика и часто наблюдается в относительных и линейных макетах.

например:

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

Высота или ширина при установке «0dp» в основном используются в сочетании с «весом». Например, вы хотите заполнить все доступное пространство для высоты, а затем использовать вышеуказанный код и, как мудрый, в том же случае для ширины.