2012-05-20 19 views
1

如何使用與API 7 ?android:attr/ XML元素? 對於API 15,它按預期工作,但較舊的會拋出錯誤。在APi7中使用內置的android attr?

<TextView 
    ... 
     android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" 
     android:paddingRight="?android:attr/listPreferredItemPaddingRight" 
     android:minHeight="?android:attr/l istPreferredItemHeightSmall" /> 

回答

0

如果你的目標的7最低API級別,但根據支持API 15這不會在很多情況下工作。

現在不得不說,是翻譯了較低和較高的API之間細微的某些屬性,但許多依賴於相應的API支持,所以你必須測試了點。

我的做法是來接我的最低API,但具有較高的API建立幷包括支持包下部的API,使得一些更高級別的支持服務(片段例如)

要看看你是會遇到任何問題,你將清單中的最小API設置爲7,並在你的項目android屬性中添加API 15。

然後建立並使用API​​ 7部署到模擬器,如果它的偉大工程,如果不是你需要找到不同的方式去做你所要完成的,以支持這兩個平臺是什麼。

您還可以創建不同的API層次不同的佈局,您還可以檢查在運行時是否使用它之前支持的類/方法,但可以大量開銷添加到您的代碼。

這需要小心,因爲它很容易,包括,這將不是按照你選擇支持還缺少在你的模擬器測試得到行使的最低水平工作的API。

當我覺得我必須這樣做時,我的方法是用最低的API級別(項目中的API屬性)進行編譯,並確保所有這些情況都是已知的,並且通過版本控制佈局來知道和處理,已經被執行了

然後切換回更高的API,你必須遵守紀律才能做到這一點,或者在發佈中冒險崩潰,老實說,這通常是不值得的,因爲你幾乎總能找到一個x-api解決方法,但每種情況都不一樣。

0

我認爲這些是在ICS(14)推出,所以你不能在以前版本的Android使用它們。您始終可以查看它們指向的值(或引用),並直接在Views上使用它們,併爲不同版本的android提供不同的佈局。