对于我目前正在开发的应用程序,我需要将不同活动的布局调整为用户的Android API级别。
有办法做到这一点吗?
答案 0 :(得分:78)
如果您尝试执行的操作是根据设备上可用的API版本显示不同的布局,则需要使用configuration qualifiers。 alternative resources的具体内容也有记录。
最基本的方法是为您要使用的每个API级别创建一个布局文件夹,格式如下:
res/layout/mylayout.xml (Default)
res/layout-v4/mylayout.xml (Android 1.6)
res/layout-v11/mylayout.xml (Android 3.0)
等等,其中vN
是API级别。可以找到特定的API级别on this page。
答案 1 :(得分:4)
正如安德鲁·科斯特所说,你可以使用不同的版本文件夹,但我发现这是很多工作,因为它不会回退到默认布局。如果您使用layout-v14,它将工作,但14之后的任何api也将具有此布局,您必须使用另一个布局-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
}
答案 2 :(得分:0)
如果您已经拥有每个平台级别的可绘制资源,则可以使用http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources
中提供的信息更具体地说,请查看表2中的“平台版本(API级别)”行。