Я знаю, что это поведение не ожидается и не стандартно, но я не знаю, может ли это быть достигнуто. Google также поняла, что схема с нормальным-большим-худшим не самая лучшая, поэтому она устарела от Android 3.2. (layout-swXXXdp будет лучшим выбором для меня)Принудительное устройство для получения ресурсов из папки с ресурсами
Однако есть устройства под 3.2, которые я должен поддерживать, и могу ошибаться, потому что эта система.
Главная проблема:
Galaxy Note 1 и Galaxy Tab 1 (и другие устройства с тем же спецификацией) выбрать ресурсы из одной и той же папки layout-large
. Но разумно мне нужно сделать разные макеты под экранами 7 дюймов и выше 7 дюймов. Я знаю, что я мог бы создать отдельную папку для «устройств исключения» (например, layout-large-xhdpi-1280x800, как указано here), но тогда мне пришлось бы поддерживать несколько почти (или точных) тех же xml-файлов в разных папках только потому, что эти некоторые устройства.
Таким образом, целью было бы поддерживать только один пакет xml (папка) для устройств под-7inch и один для устройств выше 7 дюймов. Я знаю, что есть приемы, такие как:
- Именование XML-ы по-разному (main.xml и основного large.xml), и принять решение в коде, чтобы выбрать, но даже устройства не могут решить о себе от кода, насколько они точны (например, 7-дюймовые планшеты могут отдать от 6,8 до 7,8 дюйма). Кроме того, я хотел бы использовать более «андроидный» способ с папками ресурсов.
- поддерживать папки с исключениями, как я уже упоминал.
layout
,layout-large
,layout-specifictags1
,layout-specifictags2
и список могут расширяться. Также specictags1, tags2 и normal имеют одинаковые файлы xml, но для устройств не требуется выбирать изlayout-large
. Вся причина заключается в том, чтобы избежать этого. - (EDIT) Идея использования псевдонимов придумала @Joe Malin. К сожалению, я не могу создать псевдоним main.xml в
layout-large-xhdpi-1280x800
, который ссылается на main.xml вlayout
, потому что он ссылается на self then (делая бесконечный цикл). Поэтому мне нужно было бы сохранить файл fakemain.xml вlayout-large-xhdpi-1280x800
, который ссылается на main.xml, который существует только вlayout
. Но тогда мне также нужен fakemain.xml вlayout
, потому что тогда мне не нужно заботиться о макете из кода и использовать только fakemain.xml, который является псевдонимом. Однако это решение еще 10 может Работает, но не работает на практике, к несчастью. Если у меня есть файл fakemain.xml вlayout
,layout-large
иlayout-large-xhdpi-1280x800
для заметки галактики, то псевдоним указывает наlayout-large
один, и я ничего не добился, используя псевдоним.
Вопрос:
макета sw600dp концепция даст мне самое лучшее и необходимое поведение, но оно не поддерживается под уровнем API 13.
- Есть ли способ, чтобы заставить устройство выбрать из этой папки или написать над своей переменной (с отражением java? - я знаю, что это очень плохо) вести себя как обычный экран невелик?
- Есть ли способ сохранить только два XML-пакет (папку):
- один для детей в возрасте до 7 дюймов-устройств,
- и один для выше 7inch устройств.
Unfortunatly Я не могу сделать псевдоним по имени xyz.xml в 'компоновщикам большого xhdpi-1280x800 'который ссылается на xyz.xml в' layout', потому что тогда он ссылается на self (делая бесконечный цикл). Я объясняю это далее в Edit of OP – abbath
Я нашел решение и его псевдонимы, но не тип, который вы связали. – abbath