将布局调整为Android平台或API级别

对于我正在开发的应用程序,我需要将不同活动的布局调整到用户的Android API级别。

有没有办法做到这一点?

Solutions Collecting From Web of "将布局调整为Android平台或API级别"

如果您要做的是根据设备上可用的API版本显示不同的布局,则需要使用configuration限定符 。 备选资源的具体情况也logging在案。

最基本的方法是为每个要使用的API级别创build一个布局文件夹,格式如下:

res/layout/mylayout.xml (Default) res/layout-v4/mylayout.xml (Android 1.6) res/layout-v11/mylayout.xml (Android 3.0) 

等等,其中vN是API级别。 具体的API级别可以在这个页面上find。

正如Andrew Koester所说,你可以使用不同版本的文件夹,但是我发现这是很多工作,因为它不会回退到默认布局。 如果你使用的是layout-v14,它将会工作,但14之后的任何api也会有这个布局,你必须使用另一个layout-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 } 

如果您已经为每个平台级别提供了可绘制资源,则可以使用http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources中提供的信息

更具体地说,查看表2中的“平台版本(API级别)”行。