Для создания контейнера в коде Java применяется одноименный класс ConstraintLayout. Для создания объекта используется конструктор, принимающий значения для ширины и высоты элемента:
Copy ConstraintLayout . LayoutParams layoutParams = new ConstraintLayout . LayoutParams (
ConstraintLayout . LayoutParams . WRAP_CONTENT ,
ConstraintLayout . LayoutParams . WRAP_CONTENT
); Первый параметр : ширина элемента.
Второй параметр : высота элемента.
ConstraintLayout.LayoutParams.WRAP_CONTENT указывает, что размеры элемента соответствуют его содержимому. Также можно использовать ConstraintLayout.LayoutParams.MATCH_CONSTRAINT, аналогичный 0dp в атрибутах layout_width и layout_height, который растягивает элемент до размеров контейнера.
Пример с точными размерами
Copy ConstraintLayout . LayoutParams layoutParams = new ConstraintLayout . LayoutParams (
ConstraintLayout . LayoutParams . MATCH_CONSTRAINT , 200
); Настройка позиционирования
Для управления позиционированием используется класс ConstraintLayout.LayoutParams. Ниже перечислены его основные поля для установки расположения:
baselineToBaseline — базовая линия элемента относительно другого.
bottomToBottom — нижняя граница элемента по нижней границе другого.
bottomToTop — нижняя граница элемента по верхней границе другого.
leftToLeft — левая граница элемента по левой границе другого.
leftToRight — левая граница элемента по правой границе другого.
rightToLeft — правая граница элемента по левой границе другого.
rightToRight — правая граница элемента по правой границе другого.
startToEnd, startToStart, endToEnd, endToStart — выравнивание по началу или завершению элемента.
topToBottom, topToTop — верхняя граница элемента относительно другого.
Значением для этих полей служит id элемента. Для позиционирования относительно контейнера используется ConstraintLayout.LayoutParams.PARENT_ID.
Пример: позиционирование в левом верхнем углу контейнера
Элемент TextView будет расположен в верхнем левом углу контейнера. Это эквивалентно:
Пример: размещение элементов относительно друг друга
При размещении элементов друг относительно друга сначала нужно сгенерировать их id:
Пример выравнивания
Правая граница EditText по левой границе Button:
Левая граница Button по правой границе EditText: