Установите ширину, чтобы соответствовать ограничениям в ConstraintLayout
Я хотел бы ограничить левую и правую стороны представления полями родительского представления и заставить его заполнить выделенное пространство. Однако, установка ширины либо match_parent
или wrap_content
Кажется, дает тот же результат.
есть ли что-то эквивалентное match_constraints (в отличие от match_parent и wrap_content)? Делай match_parent
и wrap_content
влияют на макет или они игнорируются в новом макете ограничений?
любить эту новую систему компоновки для моего любимого платформа!
8 ответов:
match_parent
не поддерживается. С0dp
, вы можете думать о своих ограничениях как о "масштабируемых", а не "заполняющих то, что осталось".и
0dp
может быть определено позицией, гдеmatch_parent
полагается на его родителя для его позиции (x,y и ширина, высота)
match_parent
Не допускается. Но вы можете фактически установить ширину и высоту в 0dp и установить либо верхние и нижние, либо левые и правые ограничения на "родитель".Так, например, если вы хотите иметь
match_parent
ограничение на ширину элемента, вы можете сделать это так:<TextView android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/>
видимо
match_parent
- это :
- НЕ ОК для просмотра непосредственно под
ConstraintLayout
- ОК для представлений, вложенных внутри представлений, которые находятся непосредственно под
ConstraintLayout
так что если вам нужно ваши взгляды, чтобы функционировать как
match_parent
, тогда:
- прямой детей на
ConstraintLayout
должны использовать0dp
- вложенные-элементы(например, внук ConstraintLayout) можно использовать
match_parent
пример:
<android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="16dp"> <android.support.design.widget.TextInputLayout android:id="@+id/phoneNumberInputLayout" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent"> <android.support.design.widget.TextInputEditText android:id="@+id/phoneNumber" android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.design.widget.TextInputLayout>
match_parent
не поддерживаетсяConstraintLayout
. Установите ширину в0dp
чтобы он соответствовал ограничениям.
важно: MATCH_PARENT не рекомендуется для виджетов, содержащихся в a ConstraintLayout. Подобное поведение можно определить с помощью MATCH_CONSTRAINT с соответствующим слева / справа или сверху / снизу ограничения устанавливаются в "родитель".
Так что если вы хотите добиться
MATCH_PARENT
эффект, вы можете сделать это:<TextView android:id="@+id/textView" android:layout_width="0dp" android:layout_height="wrap_content" android:gravity="center" android:text="TextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" />
для создания вашего представления как match_parent невозможно напрямую, но мы можем сделать это немного по-другому, но не забудьте использовать левый и правый атрибут с началом и концом, потому что если вы используете поддержку RTL, это будет необходимо.
<Button android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/>
установите ширину или высоту(что когда-либо нужно , чтобы соответствовать родителю ) в 0dp и установите поля слева, справа, сверху, снизу, чтобы действовать как родитель матча
в офисе doc: https://developer.android.com/reference/android/support/constraint/ConstraintLayout
когда размер установлен в MATCH_CONSTRAINT, поведение по умолчанию должно иметь результирующий размер, занимающий все доступное пространство.
с помощью 0dp, что эквивалентно "MATCH_CONSTRAINT"
важно: MATCH_PARENT не рекомендуется для виджетов, содержащихся в ConstraintLayout. Подобное поведение можно определить с помощью MATCH_CONSTRAINT с соответствующими левыми/правыми или верхними / нижними ограничениями, установленными в "parent"