2011-06-30 47 views

回答

72

如果您要做的是根據設備上可用的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找到。

+0

感謝您回答這項工作非常好! – Atheh

+0

如果我只有上述三個文件,但我使用GB設備,它將使用哪個文件? (layout-v4或佈局)?我必須爲每個平臺創建一個不同的文件夾嗎?我計劃從GB開始支持 –

+6

@FredericYesidPeñaSanchez它將倒退到下一個最匹配的佈局。所以res/layout總是最後匹配,這是必需的,但其他任何是可選的。除非每個平臺需要不同的東西,否則不需要每個平臺的文件夾。 – Jess

3

正如Andrew Koester所說,你可以使用不同版本的文件夾,但是我發現這是很多工作,因爲它不會回退到默認佈局。如果您使用的是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 
     }