В верхнем левом углу отображаются изображения ConstraintLayout

Каждый раз, когда я создаю такие виды, как Button и TextView в ConstraintLayout, они все застревают в верхнем углу вместо того, где я их размещал.

Я попытался создать новые действия и изменить эмулятор, но результат все тот же.

Это скриншот того, что происходит:

введите описание изображения здесь

В чем может быть проблема?

Ответ 1

Как указано в Руководство по компоновке ограничений:

Если у вас нет ограничений при запуске макета на устройстве, он отображается в позиции [0,0] (верхний левый угол).

Вы должны добавить хотя бы одно горизонтальное и одно вертикальное ограничение для представления.

Я думаю, вы не применяли никаких ограничений.

Либо вручную применить ограничения к представлению, либо позволить редактору макета сделать это для вас, используя кнопку "Infer constraints":

введите описание изображения здесь

Ответ 2

Когда вы бросаете представление в Редактор макета, он остается там, где вы его оставляете, даже если у него нет ограничений... это только упрощает редактирование

Другими словами, представление "останется там, где вы его оставите", пока вы не добавите ограничения.

Причина, по которой она выглядит по-другому в приложении "Предварительный просмотр", отличается от вашего приложения тем, что что-либо в вашем XML с tools: будет удалено из кода, когда ваш приложение работает. Эти параметры предназначены только для редактора макетов Android Studio, а не для представления того, что вы должны ожидать при запуске кода.

И это может быть неприятно для новичков, потому что

недостающее ограничение не приведет к ошибке компиляции

Однако

Редактор макета указывает на отсутствие ограничений в качестве ошибки на панели инструментов. Чтобы просмотреть ошибки и другие предупреждения, нажмите Показать предупреждения и ошибки (красная кнопка с номером). Чтобы помочь вам избежать недостающих ограничений, редактор макетов может автоматически добавлять ограничения для вас с помощью функции автосоединения и вывода ограничений

Подробнее

Ответ 3

Быстрый и простой способ исправить это - щелкнуть по компоненту (TextView, ImageView и т.д.) И нажать кнопку "Вывести ограничения". Похоже, 2 желтых плюса.

выводить ограничения изображения

infer constraints image

Ответ 4

В основном этот тип проблемы возникает при использовании ConstraintLayout.

  • Итак, перейдите к предварительному просмотру из Android Studio.

  • Выберите ту кнопку, которую вы хотите установить в определенной позиции

  • Наконец, просто нажмите на кнопку " Вывести ограничения", как я упомянул на рисунке ниже, на красном круге.

https://i.imgur.com/sDu1ghP.jpg

Это все запустить проект и увидеть магию

Спасибо

Ответ 5

добавьте это в xml к кнопке и т.д.

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.57"

затем играйте с ним в дизайне.

Удачи! :)