Ответ 1
layout-small-land
и layout-small-port
являются правильными ответами, и они компилируются для меня отлично. Возможно, в вашей структуре каталогов есть что-то еще.
Я хочу создать отдельные папки для своих макетов, например, в моем каталоге ресурсов:
layout-land
layout-port
это нормально, но это:
layout-small-land
layout-small-port
или
layout-land-small
layout-port-small
Результаты в: 'Недопустимое имя каталога ресурса'
Что дает?
layout-small-land
и layout-small-port
являются правильными ответами, и они компилируются для меня отлично. Возможно, в вашей структуре каталогов есть что-то еще.
Вы можете указать плотность экрана вместо размера, такого как Большой или Малый
Пример:
layout-port-hdpi
layout-port-ldpi
layout-port-mdpi
layout-port-nodpi
layout-land-hdpi
layout-land-ldpi
layout-land-mdpi
layout-land-nodpi
Дополнительная информация по следующей ссылке:
https://developer.android.com/guide/topics/resources/resources-i18n.html#AlternateResources
Для использования Large, Medium, Small это способ:
res/layout/my_layout.xml // layout for normal screen size
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode
Он предоставит вам "invalid resource error"
, пока папка не будет пуста. Если вы заполните его с помощью файлов .xml
(они должны совпадать точно в каждой папке layout-<qualifier>
), это не даст вам никаких ошибок.
EG:
компоновка портов
- > mainscreen.xml
макета большой порт
- > mainscreen.xml
это нормально
Я ничего не нашел в Интернете, который ссылается на эту структуру, но следующее сообщение в блоге показывает пример, в котором автор использует ldpi (и я уверен, что mdpi и hdpi) вместо маленьких, обычных и больших (как в справочных документах по android предложили бы). Посмотрите ссылку ниже и, возможно, попробуйте эту структуру: