Реализация макетов в соответствии с размером экрана - PullRequest
0 голосов
/ 20 марта 2020

Мне интересно, возможно ли использовать разные макеты в зависимости от размера экрана телефона (не планшеты, часы и т. Д. c.). Я уже посмотрел эту статью, но, похоже, не добился успеха в реализации того, что он предлагает. Просто для контекста, я использую ConstraintLayout для всех моих макетов. Первоначально я разработал свой пользовательский интерфейс, используя Pixel 3 XL, и когда я пытаюсь запустить свое приложение на любом другом устройстве, пользовательский интерфейс выглядит искаженным, его элементы находятся не там, где они должны быть, и все просто ужасно.

Как бы я go о создании и назначении макетов для каждого размера экрана? Есть ли что-то еще, что я мог бы сделать вместо этого?

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Google рекомендует создать другой каталог res / layout для указанных c пикселей, например, res / layout-1024x720 , res / layout-1280x720 , res / layout-1920x1080 et c ..

0 голосов
/ 20 марта 2020

@ Inso прав, вы можете просто сохранять разные версии своих ресурсов в разных версиях ваших папок res / подпапок (например, layout-1280x720 или drawable-1920x1080). Это относится не только к файлам макетов, но также к чертежным объектам и любому другому каталогу ресурсов, и вы можете создавать различные версии не только по разрешению экрана, но также по размеру экрана API устройства и т. Д.

Я рекомендую прочитать следующее документация , которая объясняет все, что возможно.

Возможно, вы просто выбрали неправильный тип макета для своего приложения. Вы должны проверить доступную документацию по типам макетов (там есть куча) и посмотреть, может быть, ConstraintLayout может быть неправильным выбором.

Я также рекомендую иметь набор разных виртуальных устройств (из эмулятора) с разными размерами экрана и разными API, чтобы вы могли каждый раз тестировать и проверять, как ваше приложение работает в разных rnet условиях

...