Layout-sw400dp не вызывается.Поддержка нескольких экранов - PullRequest
0 голосов
/ 08 декабря 2018

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

layout-sw320dp (smallest phones, 4.0" and smaller)

layout-sw360dp (approximately 4.7-5")

layout-sw400dp (most phones right now, 5-6")

Примечание: это значенияиз вкладки Design в Layout Editor из Android Studio.(Пример для layout-sw320dp)

enter image description here

Первый макет (layout-sw320dp) для экранов малого размера был разработан в Android Emulator на Nexus S

Второй макет (layout-sw360dp) был разработан на реальном устройстве Samsung Galaxy A3 2017 - 4.7''

Оба они работают!Каждая раскладка вызывается в соответствии с размером экрана телефона: layout-sw320dp на Nexus S, что составляет 4.0' и layout-sw360dp, на моем телефоне 4.7".

Моя проблема возникает с layout-sw400dp, который долженвызываться на устройствах с 5" и выше.Для этого макета у меня есть еще один реальный телефон Samsung Galaxy S7 edge - 5.5", но на этом телефоне приложение вызывает layout-sw360dp вместо layout-sw400dp.Это происходит только на моем реальном телефоне.В Android Emulator на Pixel XL (который имеет те же характеристики экрана, что и S7 edge - 5.5" и такое же разрешение) приложение вызывает правильный макет.

Обновление: Пример для layout-sw400dp enter image description here

Мои вопросы: Почему это происходит?Как я могу решить, что телефоны с 5" и больше вызывают другую раскладку, чем layout-sw360dp?

1 Ответ

0 голосов
/ 08 декабря 2018

Samsung S7 Edge - это 5,5-дюймовый телефон, и он подпадает под категорию sw360dp

. Это означает, что все работает так, как должно быть

ссылка https://material.io/tools/devices/

Дело в том, что DP не зависит исключительно от стороны экрана, оно зависит от размера экрана и количества пикселей, которое фактически имеет дисплей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...