#android-studio #android-layout #wear-os
Вопрос:
Когда создается новое приложение Wear OS, activity_main.xml по умолчанию используется значение BoxInsertLayout. В отличие от более привычного ConstraintLayout по умолчанию не позволяет устанавливать ограничения для различных элементов
Его можно изменить на более привычный макет, однако требуется несколько шагов
Сначала на экране «Дизайн» щелкните правой кнопкой мыши, а затем выберите «Преобразовать отображение фреймов в отображение контраста», выберите » ОК » и дождитесь завершения сборки Gradle
Теперь щелкните левой кнопкой мыши на изображении фрейма, чтобы выбрать его и удалить
Теперь щелкните правой кнопкой мыши и выберите Преобразовать BoxInsertLayout в ContraintLayout Выберите ОК
Теперь вы можете вставлять элементы и устанавливать для них ограничения
Коррупция
Остаются проблемы — случайным образом Android Studio переместит все ваши элементы в верхний левый угол [например].
Если вам повезет, то он может предложить вариант восстановления, однако в других случаях вам нужно вручную попытаться восстановить макет.
Проблема в том, что часто все элементы также будут сделаны настолько маленькими, что вы не сможете выбрать их из представления дизайна. Чтобы выбрать один из них, используйте Дерево компонентов (под палитрой слева).
После выбора установите атрибуты Ширины и высоты (справа) на что-то достаточно большое, чтобы вы могли щелкнуть и перетащить ограничения с помощью представления дизайна.
Нет, этого не должно произойти, но это происходит
Комментарии:
1. Я обновлял файл .kt, вернулся к файлу .xml и наблюдал, как все элементы переместились из заданных положений в верхний левый угол! Я не менял никаких файлов, Android Studio просто решила переместить их все и не позволит мне переместить их обратно.
Ответ №1:
Это просто сработало для меня в первый раз, просто нужна была зависимость от
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
Комментарии:
1. Я могу подтвердить, что «реализация» была в рабочей версии и отсутствовала в сломанной версии. К сожалению, добавление его в gradle не решило проблему.