Можно ли "изящно деградировать" приложение для Android?
Мне интересно, возможно ли использовать подход изящной деградации в приложении для Android. То есть, используйте некоторые функции, скажем, API 15, но если это не поддерживается, используйте вместо этого API 10.
В частности, я имею в виду "перелистывание вкладок" в Android 4 против отсутствующей поддержки этой функции в Android 2.x (и, следовательно, с использованием обычных вкладок), но вопрос довольно общий.
Я хотел бы использовать расширенные функциональные возможности на устройствах, которые поддерживают его, но когда он не поддерживается, я хотел бы использовать альтернативу. Кажется, я не могу использовать библиотеки Android 4 в проекте Android 2, в то время как проект Android 4, по понятным причинам, не будет запускаться на устройстве Android 2.
Любое решение? Или, по крайней мере и на данный момент, какое-нибудь решение для "перелистывания вкладок" на Android 2?
3 ответа
Часть 1. Чтобы иметь возможность использовать функциональность для новых API, убедитесь, что в манифесте объявлен ваш android:minSdkVersion с самой низкой версией (10, в вашем случае), но установите для android:targetSdkVersion более новую версию с API, которые вы хотите использовать. (15). В своем коде вы можете сделать что-то вроде
if ( Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH ) {
// Use the new APIs
} else {
// Use the old APIs
}
Вам нужно будет добавить аннотацию, чтобы указать использование нового API.
Часть 2: перелистывание вкладок. Я использовал функцию ViewPagerIndicator Джейка Уортона и функцию ViewPager в библиотеке поддержки Android для достижения возможности перелистывания вкладок. Это довольно просто. Больше информации на странице http://viewpagerindicator.com/
Надеюсь это поможет.
Обязательно используйте директиву @TargetApi над классом или функцией, которая работает только с более новой версией API. Например
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
void foo() {
/* function called only on ice cream sandwich (API level 14) and greater */
}
Я знаю, что вы уже отметили свой ответ, но, возможно, это может вам помочь, его библиотека андроидов называется actionbar sherlock, которая перенесла функции 4.x в 2.x. включая фрагменты, пейджеры, вкладки и панель действий, представленную в 3.0