Проектирование для разных размеров экрана с использованием ConstraintsLayouts

Я начал погружаться в макет ограничений, которые были объявлены на IO в этом году. Это выглядит очень многообещающе и делает ваши макеты очень эффективными. Я видел выдержку из кодовой метки, предоставленную Google. Однако у меня есть следующие вопросы, которые я хотел бы решить.

  1. Как ConstraintLayouts можно использовать для разработки макета для экрана разных размеров?

В настоящее время я разрабатываю макет и устанавливаю поля представлений, отступы и т. Д. Для конкретного устройства / группы экранов. Сохраните эти значения в dimens.xml файл. Это действительно болезненный метод для разработки макетов. Совпадает ли Android ConstraintsLayout с AutoConstraintsLayout для iOS при проектировании для нескольких экранов?

  1. Требуется ли для разметки макета для другой ориентации экрана разные файлы Layout.xml, т.е. layout_landscape.xml и layout_portraint.xml?

2 ответа

Да, весь смысл ConstraintLayout (и в этом отношении любой макет Android начиная с Android 1.0) заключается в способности обрабатывать различные экраны (размерность, плотность...). У вас нет ничего особенного (кроме указания ограничений между виджетами).

Если вы хотите создать экран для экрана другого размера, подумайте о полях как о "минимальном" интервале; и создайте ограничение между виджетами, чтобы вы располагали виджет относительно других виджетов.

У вас также есть рекомендации и центрирование смещения, которые дают вам большую гибкость.

Относительно ориентации экрана, это зависит только от вас - если вы ничего не делаете, определенный вами макет будет применен к любой ориентации. Так что это будет "работать". Но часто вам нужен другой интерфейс между портретом и пейзажем. В этом случае вы действительно можете создать два файла макета, и обычная система подберет подходящий для вас.

Наконец, вы можете легко проверить, как будет работать макет, на котором вы работаете, на другом экране / устройстве, изменив текущее определение экрана из всплывающего окна в Android Studio:

Screeen всплывающее окно

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

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

Как ConstraintLayouts можно использовать для разработки макета для экрана разных размеров?

Если под разными экранами вы имеете в виду телефон и планшеты, то вам придется создать для них разную раскладку. Один из способов сделать это - определить layout-sw360dp,layout-sw600dp а также layout-sw720dp,

В настоящее время я разрабатываю макет и устанавливаю поля представлений, отступы и т. Д. Для конкретного устройства / группы экранов. Сохраните эти значения в файле dimensions.xml.

Возможно, вы хотите посмотреть на цепи и руководящие принципы.

Требуется ли для разметки макета для другой ориентации экрана разные файлы Layout.xml, т.е. layout_landscape.xml и layout_portraint.xml?

Да.

Другие вопросы по тегам