Установите ширину, чтобы соответствовать ограничениям в 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"