В верхнем левом углу отображаются изображения 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"
затем играйте с ним в дизайне.
Удачи! :)