簡體   English   中英

AppCompat-設置操作欄樣式時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM