Android 有没有可能;“优雅降级”;安卓应用程序?

Android 有没有可能;“优雅降级”;安卓应用程序?,android,graceful-degradation,Android,Graceful Degradation,我想知道是否有可能在Android应用程序中使用优雅的降级方法。也就是说,使用API 15的一些函数,但如果不支持,则使用API 10 具体地说,我在安卓4中有“滑动标签”,而在安卓2.x中缺少对该功能的支持(因此使用普通标签),但问题相当普遍 我希望在支持它的设备上使用高级功能,但当它不受支持时,我希望使用其他功能。我似乎无法在安卓2项目中使用安卓4库,而安卓4项目无法在安卓2设备上启动,这是可以理解的 有解决办法吗?或者,至少就目前而言,安卓2上的任何“滑动标签”解决方案?第1部分:为了能够

我想知道是否有可能在Android应用程序中使用优雅的降级方法。也就是说,使用API 15的一些函数,但如果不支持,则使用API 10

具体地说,我在安卓4中有“滑动标签”,而在安卓2.x中缺少对该功能的支持(因此使用普通标签),但问题相当普遍

我希望在支持它的设备上使用高级功能,但当它不受支持时,我希望使用其他功能。我似乎无法在安卓2项目中使用安卓4库,而安卓4项目无法在安卓2设备上启动,这是可以理解的


有解决办法吗?或者,至少就目前而言,安卓2上的任何“滑动标签”解决方案?

第1部分:为了能够为较新的API使用功能,请确保您的清单将您的安卓:minSdkVersion声明为最低版本(10,在您的情况下),但将安卓: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部分:滑动标签-我使用了Jake Wharton的ViewPagerIndicator和Android支持库中的ViewPager功能来实现滑动标签。这很简单。页面上有更多信息


希望这能有所帮助。

请确保在该类或函数上方使用@TargetApi指令 仅适用于较新版本的API。比如说

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
void foo() {

  /* function called only on ice cream sandwich (API level 14) and greater */

}

我知道你已经标记了你的答案,但maby可以帮助你,这是一个名为actionbar sherlock的android库,它已经将4.x函数向后移植到2.x。包括3.0中引入的片段、寻呼机、标签和操作栏,谢谢。我去看看。我知道应用程序在安卓2中也能产生这种效果,但我不知道它们是如何做到的。。。