Это представление не ограничено по вертикали

61
3

Я просто обновляю Android Studio и играю с маской Constraint. В xml-атрибуте есть некоторые ошибки.

Это представление не ограничено по вертикали: во время выполнения он будет прыгать влево, если вы не добавите ограничение по вертикали меньше... (Ctrl + F1). Редактор макетов позволяет размещать виджеты в любом месте на холсте и записывает текущую позицию с помощью (например, layout_editor_absoluteX.) Эти атрибуты не применяются во время выполнения, поэтому, если вы нажимаете макет на устройстве, виджеты могут отображаться в другом месте, чем показано в редакторе. Чтобы исправить это, убедитесь, что виджет имеет как горизонтальные, так и вертикальные ограничения, перетаскивая их из пограничных соединений.

Я выполняю следующие действия:

Right click on designing part > Constraint Layout > Infer Constraints

но я не могу найти Constraint Layout.

enter image description here

спросил(а) 2021-01-19T20:12:45+03:00 2 месяца, 3 недели назад
1
Решение
76

Я также заметил, что ограничения вывода не всегда срабатывают. Что я делаю, я:

    Перетащите представление, которое я хочу, в макет ограничения, Выровняйте его на экране, как я хочу, чтобы он отображался, Вручную создайте соединение между его левым ограничением ограничений со своим родителем или другим видом, Вручную создайте соединение между его основным ограничением ограничений со своим родителем или другим видом.

Этот метод ограничения делает ненужным для меня infer constraints потому что все мои взгляды ограничены. Если я получаю какие-либо ошибки, я clear all constraints а затем вручную создаю соединения для каждого вида в макете.

Здесь изображение, описывающее, что я имею в виду:

constrained button

Я ограничил левый и верхний, и при этом ничто не должно быть выведено.

Примечание.

    Я использую Android 3.0 и версию ConstraintLayout 1.0.2 Он хорошо работает при создании только двух соединений, которые перпендикулярны друг другу, то есть верхний/левый, верхний/правый, снизу/слева, снизу/справа.

ответил(а) 2021-01-19T20:12:45+03:00 2 месяца, 3 недели назад
44

Вы получаете эту ошибку, потому что вы не упомянули marginTop в своем элементе в макете ограничений. Вам нужно установить android:layout_marginTop="your_value" и ваша проблема будет решена

ответил(а) 2021-01-19T20:12:45+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема