Для приложения, которое я сейчас разрабатываю, мне нужно адаптировать макет различных действий к пользовательскому уровню API Android.
Есть ли способ сделать это?
Ответ 1
Если то, что вы пытаетесь сделать, это показать другой макет, в зависимости от того, какая версия API доступна на устройстве, вы хотите использовать квалификаторы конфигурации. Специфика для альтернативных ресурсов также документирована.
Самый простой способ сделать это - создать папку макета для каждого уровня API, который вы хотите использовать, отформатирован следующим образом:
и т.д., где vN - уровень API. Конкретные уровни API можно найти на этой странице.
Ответ 2
Как сказал Andrew Koester, вы можете использовать разные папки версий, но я нашел, что это большая работа, потому что она не вернется к макету по умолчанию. Если вы использовали layout-v14, он будет работать, но любой api после 14 также будет иметь этот макет, и вы должны использовать другой макет-v? чтобы снова переопределить его. Все зависит от того, что вы делаете, но я обнаружил, что если вы много делаете программно, это творит чудеса:
if(Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH || Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1){
//ex. if ics is met then do this
}else{
//if api is not ics then do this
}