[英]AppCompat - Error while styling the actionbar
我正在使用appcompat庫來實現操作欄。 使用自定義樣式時,它會給出錯誤android:actionBarStyle要求API級別11(當前最小值為10)。 我希望該應用程序與android 2.3兼容。 我正在使用谷歌示例代碼。
themes.xml
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>
AppCompat與2.3兼容,但是您需要定義2種樣式(如上所述):1種用於本機actionbar實現(android:actionBarStyle),一種是兼容性實現(actionBarStyle)。
如果在values / styles.xml中定義這兩種樣式,則會出現編譯錯誤-因為values / styles.xml是針對所有api版本進行編譯的,而2.3並不了解android:actionBarStyle。
因此,您可以復制樣式。 有一個values / styles.xml和一個values-v14 / styles.xml
當在api 14及更高版本的設備上運行時,values-v14 / styles.xml中的樣式將覆蓋values / styles.xml中的任何樣式。
或者,您也可以將所有樣式保留在一個values / styles.xml中,但是要在出現錯誤的屬性上,將一個工具:targetApi =“ 14”添加到標記中,告訴編譯器在非api上忽略它14個設備。
例如
<item name="android:actionBarStyle" tools:targetApi="14">@style/MyActionBar</item>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.