преобразование match_parent в 0dp

Когда я использую android:layout_height="match_parent" или android:layout_width="match_parent" в качестве высоты/ширины дочерних элементов в Constraint Layout и создаю файл Gradle, он автоматически изменяется на android:layout_height="0dp" или android:layout_widtht="0dp" соответственно.

Технически существует огромная разница между 0dp и match_parent.

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

Я не знаю, почему это происходит.
Пожалуйста, помогите мне.


person Rahul Sharma    schedule 19.10.2016    source источник
comment
0dp эквивалентен match_parent в ConstraintLayout, подробнее читайте здесь developer.android.com/ обучение/ограничение-макет/index.html   -  person ShadowGod    schedule 22.10.2016


Ответы (3)


match_parent не поддерживается в ConstraintLayout. Если вы хотите такое же поведение, используйте 0dp и установите ограничения с каждой стороны для родителя.

person Nicolas Roard    schedule 19.10.2016
comment
Если match_parent не поддерживается, зачем делать его опцией в раскрывающемся списке для layout_width и layout_height в IDE? Я не говорю, что вы неправы (потому что если вы работаете в Google и ваше имя постоянно всплывает в ответах на вопросы ConstraintLayout, то вы, очевидно, много об этом знаете). Но я говорю, что вся текущая реализация ConstraintLayout беспорядочна и в настоящее время непригодна для использования. - person SimonH; 25.10.2016
comment
Но что, если я хочу, чтобы высота или ширина моего представления были равны 0 dp (с 0 в качестве значения) в ConstraintLayout? Я не могу использовать 0dp и 0px, потому что это будет действовать как match_parent. - person bitvale; 26.07.2018

Вы не должны использовать match_parent для любого представления в ConstraintLayout. Вместо этого используйте «соответствовать ограничениям» (0dp)

match_parent означает filling whats left, где 0dp означает match constraints. В ConstraintLayout match_parent не поддерживается.

match_parent полагается на своего родителя для своей позиции (x, y и ширина/высота), но 0dp может быть определен ограничением/позицией

person Pehlaj - Mobile Apps Developer    schedule 25.04.2017

Способ, которым я работал, чтобы поместить относительный элемент под другим элементом с родительским элементом, соответствующим ширине:

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/xxx"
    app:layout_constraintEnd_toEndOf="@+id/xxx"
    >
person Hasan A Yousef    schedule 29.04.2017