2012-01-25 24 views
17

Android 4.0(ICS)有很多new UI guidelines這很棒。問題是,未來,我不確定如何爲Android 4.0構建應用程序,並確保應用程序在運行Android 2.2和2.3的設備上看起來相同/相似。如何使Android 4.0應用向後兼容?

Android compatibility librarybackwards compatible Action Bar,但我正在尋找一個更具體的解決方案,用於將ICS後應用程序移植到ICS前電話。

我在正確的軌道上嗎?任何人有任何想法?

+1

鏈接的文章不是ICS特定的。只是在編碼Android時遵循Android慣例的一般性告誡。 –

+1

究竟是什麼「更具體的解決方案」? – CommonsWare

+0

那麼... Google提供的向後兼容的庫和工具對你來說不夠具體嗎?你期待他們不工作或什麼? –

回答

21

以下是一些建議。

首先要注意新的Android Design guidelines。我相信這是一個好主意,不僅因爲明顯的設計原因,還因爲它會使後向兼容性變得更容易。例如,Support Package有助於將推薦的設計元素引入舊平臺,並且此套件的新版本可能會使其與最新的設計指南更接近。


二,使用fragments。即使您認爲現在不需要片段,他們也是Android設計的未來,而大屏幕Android的數量可能會非常快速增長。儘管它們增加了一些額外的複雜性,但我認爲它們通過將活動視圖分開來鼓勵良好的設計。

通過Support Package(也稱爲兼容性庫)啓用片段的使用。這很簡單,我沒有遇到任何問題。只要確保你的進口看起來像這樣:

import android.**support.v4**.app.Fragment; 

,讓你從支持包讓他們而不是本機API ICS的直接調用。


第三,使用文檔中描述的使用主題的ICS/HC操作欄。請注意,這不會爲您的應用程序提供預蜂窩平臺上的操作欄。爲此,您需要使用類似ActionBarSherlockActionBarCompat樣本。兩者都是很好的解決方案,但它們增加了應用程序的複雜性。在支持包的當前版本中沒有操作欄,這顯然是由於技術問題,但我會懷疑他們正試圖解決這些問題。

因此,如果您想保持簡單,請考慮您的應用在ICS & HC上有一個操作欄並且在早期平臺上沒有操作欄是合理的。實際上,Android Dev blog在過去幾天裏有一個帖子,主要關注在這些情況下管理菜單和操作項目。另外,考慮到之後在您的應用程序中添加預蜂窩操作欄(例如,使用來自ActionBarCompat樣本的代碼)將不會那麼糟糕 - 在我看來,這會更容易,然後稍後重新處理您的代碼片段。

最後,請注意,您需要使用最新的SDK,讓你可以參考元素,如全息主題(對於ICS動作條)和showAsAction="ifRoom"元素,讓你的清單將包括類似:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> 
+0

感謝您的詳細信息。你鏈接到我已經鏈接到我的問題的3篇文章。 我仍然有問題的ActionBar。我如何獲得拆分的ActionBar以顯示在ICS之前的設備上? –

+1

我不知道這個問題的答案 - 根據我的帖子,我已經在ICS前的設備上使用了片段,但不使用操作欄。 – Tom

+0

最好的解決方案恕我直言,是ActioBarSherlock。支持從2.x到4.x,涵蓋了一切! – Paschalis