Intereting Posts

Задайте ширину для соответствия ограничениям в ConstraintLayout

Я хотел бы ограничить левую и правую стороны View до полей родительского представления и сделать это заполненным выделенным пространством. Однако установка ширины для match_parent или wrap_content видимому, дает тот же результат.

Есть ли что-то эквивалентное match_constraints (в отличие от match_parent и wrap_content)? match_parent ли match_parent и wrap_content макету или игнорируются ли они в новом wrap_content ограничений?

Любить эту новую систему макетов для моей любимой платформы!

Solutions Collecting From Web of "Задайте ширину для соответствия ограничениям в ConstraintLayout"

Match_parent не поддерживается. С помощью 0dp вы можете думать о своих ограничениях как о «масштабируемом», а не «заполнять то, что осталось».

Кроме того, 0dp может быть определено положением, где match_parent полагается на его родительский элемент для его позиции (x, y и width, height)

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
  • OK для представлений, вложенных внутри представлений, которые находятся непосредственно под ConstraintLayout

Поэтому, если вам нужны ваши представления для функции match_parent , тогда:

  1. Прямым детям ConstraintLayout следует использовать 0dp
  2. Вложенные элементы (например, внук в 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 чтобы она соответствовала ограничениям.

Установить ширину или высоту (что вам нужно сопоставить с родителем) до 0dp и установить поля слева, справа, сверху, снизу, чтобы действовать как совпадение с родителем