2

Я знаю, что могу создать /layout-v7,, , папки, позволяющие моему приложению загружать подходящий макет для разных платформ.Загрузить файл макета на основе версии платформы в моем случае

НО, вышеуказанный способ требует, чтобы я создавал разные папки макета для всех необходимых платформ.

Я хотел бы иметь только два макета папки, если мое приложение работает на платформе с API версии > = 11, он загружает из layout-x/, файлы разметки иначе нагрузки от layout-y/.

Как достичь этого?

+1

создайте их все в одной папке с разными именами и просто проверьте значение 'android.os.Build.VERSION.SDK_INT', чтобы загрузить правильный. –

+0

@ Сергей, я сделал то же самое, что и ты, прежде чем писать. Просто интересно, есть ли какое-нибудь другое решение для моей цели. –

+0

Я не думаю, что это плохой способ сделать это. Все нормально. Если вы хотите следовать стандартным процедурам, используйте несколько папок, как они предлагают. –

ответ

7

Я хотел бы иметь только две папки макета, если мое приложение работает на платформе с версией API> = 11, то он загружает из топологий х в противном случае компоновки загрузки файлов/из макета у /.

res/layout-v11/ и res/layout/. И вы сделали.

+1

Но если мое приложение работает на платформе с API версии 13, будет ли загружать файлы макета приложения из layout-v11 ?? –

+0

Затем просто создайте 3 папки :) –

+3

«Но если мое приложение работает на платформе с API-версией 13, будут ли загружать файлы макета приложения из layout-v11 ??" -- да. – CommonsWare

1

У меня была эта проблема. Ответ выше подсказывал мне изменить то, как я это делал. У меня была папка «layout-v8» и «layout», считая, что если она будет соответствовать v8, она будет использовать ее, а любая другая папка будет соответствовать обычной компоновке.

Так что если вы обнаружите, что используете неправильную папку, переключите способ обработки имен папок. В этом примере я создал «layout-v11», который равен v11 и выше, тогда моя обычная папка «layout» - 10 и ниже.

Смежные вопросы