2012-07-09 66 views
2

我有一個應用程序,我想添加一個小部件。如何爲不同版本的Android使用不同的小部件?

我一直在挖掘文檔,看起來只有Android 3.0+支持小部件中基於姿勢的視圖。例如,我可以在4.03上的gmail窗口小部件上滾動我的電子郵件作爲listView,並且我還看到了一個GridView小部件(在4.03上)。

因此,這些類型的部件不能在2.2使用和2.3

有什麼辦法,我可以有我的應用程序4.0提供一個gesturable小部件,如果用戶有2.3,它會加載不同的插件?

我沒有問題寫兩個小工具,這兩個工作 - 我只是想2.2上的用戶使用我的2.2小工具和用戶在3.0 +以上使用我的3.0 +小工具。

這可能來自一個應用程序?

謝謝!

+1

你可以檢查在編譯的時候了Android版本,並確定哪個版本的設備上運行,因此該窗口小部件都應您的應用程序使用。 – Nerd 2012-07-09 19:18:09

+0

是的,我暗中希望這不是唯一的方式,但那會工作。 – edthethird 2012-07-09 19:47:48

回答

1

android有設備資源和代碼來打開版本。不,沒有什麼高層次的東西給你的小部件的XML添加版本號。

的佈局和其他資源,您可以命名爲,

res/values-v11 
res/layout-v11 

等Android將拉動最佳匹配的資源在運行時的資源文件夾。在代碼中,你可以檢查SDK版本,

if (Build.VERSION < Build.VERSION_CODES.HONEYCOMB) { 
    // handle android 2 here 
} 
+0

如果android會在運行時拉出最佳匹配資源,爲什麼我必須檢查代碼?確保演示者邏輯具有正確的視圖? – edthethird 2012-07-09 19:47:28

+0

正好。如果小部件顯着不同,則佈局可能具有不同的元素,並且處理程序邏輯可能不同。這取決於你的代碼。你可能只能擁有兩種不同的佈局。 – 2012-07-09 20:35:35

+0

是啊,我正在考慮嘗試讓'id'值匹配整個佈局,我可以避免這種情況。不管怎麼說,多謝拉! – edthethird 2012-07-09 20:37:25

相關問題