Intereting Posts
Android-цель useLevel в теге формы Является ли способ, с помощью которого быстро запускаются функции быстрого запуска базы данных Firebase? Как использовать токен доступа Facebook в веб-обозревателе Android Путь к скриншотам в Android Android: увеличьте размер стека вызовов Obj Фрагмент неправильный 2-й тип аргумента найден 'Android.support.V4.app.Fragment.' Требуется «Android.app.Fragment» Слайд-анимация xml для изменения активности в android Задание расписания Android для выполнения в определенное время ежедневно Создание целевой и минимальной версии SDK в Android Окно Android не изменяет размер / панорамирование при открытии softinput из WebView Android ClickableSpan перехватывает событие click Поймать исключение из дочерней активности в родительской деятельности Отображать всю музыку на SD-карте Google Instant App – как начать автоматизацию с помощью Appium Ошибка Lint с фрагментами на Android L: «Этот метод не отменяет ничего»

Программирование различных макетов для разных версий в Android

Мне нужно запрограммировать приложение для Android с лучшей совместимостью с различными размерами экрана (планшеты и смартфоны) и версиями 2.3, 3.2 и 4.0. Я знаю о возможности указать папки макета, например res / layout-sw600dp /. Чтобы соответствовать макету точно для разных размеров экрана.

Поэтому я буду использовать совершенно разные макеты для планшетов / смартфонов , я бы начал с «экрана загрузки», который проверяет, какая версия Android используется, и если используется устройство планшета или смартфона, например, в Макета для планшета, на некоторых экранах будут кнопки, которых на смартфоне не будет.

Поэтому мне придется отделить все это в пакетах, например:

  • общий
  • 2,3
    • таблетка
    • смартфон
  • 3,2
    • таблетка
    • смартфон
  • 4,0
    • таблетка
    • смартфон

Я бы выбрал это разделение, потому что, на мой взгляд, это лучший способ быть готовым к предстоящим * обновлениям *, если, скажем, в ToolBar в Android 4.0 должна быть добавлена ​​кнопка.

По вашему мнению, это разделение – это полная перегрузка?

Есть ли в 4.0 новые функции, о которых я должен знать?

Solutions Collecting From Web of "Программирование различных макетов для разных версий в Android"

Вы также можете назвать свои папки ресурсов для указания номера версии (например, /res/layout-v11 ) или ( /res/values-v13 )

Что касается вашего вопроса о разделении – это действительно зависит от ваших конкретных требований. Общим подходом к этой проблеме является механизм отказа: вы предоставляете несколько конкретных макетов (например, макет xlarge landscape v11) и несколько общих, на которые нужно вернуться.

Конечно, это «идеалистическое» решение; И это не всегда так. Другими словами, очень сложно практически реализовать приложение, совместимое со многими версиями Android, исключительно путем предоставления альтернативных ресурсов. Даже если вы используете библиотеки совместимости (что немного помогает сократить код версии); Вам все равно придется адаптировать свой код на основе версии во время выполнения.

Вы можете узнать версию Android, смотрящую на Build.VERSION.

В документации рекомендуется проверить Build.VERSION.SDK_INT на значения в Build.VERSION_CODES.

И на основе этой версии вы можете установить свои макеты, если в остальных условиях