2014-02-08 42 views
3

我正在製作一個android應用程序並使用android-support-v7-appcompat來確保我的應用程序支持從android 2.2及更高版本開始的操作欄。android:windowActionBarOverlay&android:actionBarStyle需要api level 11

我需要做出的動作欄覆蓋和使用半透明的背景,所以我已經修改了styles.xml這個代碼:

<resources> 

    <style name="AppBaseTheme" parent="android:Theme.Light"> 
     <!-- 
      Theme customizations available in newer API levels can go in 
      res/values-vXX/styles.xml, while customizations related to 
      backward-compatibility can go here. 
     --> 
    </style> 

    <!-- Application theme. --> 
    <style name="AppTheme" parent="AppBaseTheme"> 
     <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    </style> 

    <!-- TRANSLUCENT THEME --> 
    <style name="TranslucentAB" parent="Theme.AppCompat.Light"> 
     <item name="windowActionBarOverlay">true</item> 
     <item name="android:windowActionBarOverlay">true</item> 
     <item name="android:actionBarStyle">@style/BlackBar</item> 
     <item name="actionBarStyle">@style/BlackBar</item> 
    </style> 

    <!-- TRANSLLUCENT COLOR STYLE --> 
    <style name="BlackBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@drawable/halfblack</item> 
     <item name="background">@drawable/halfblack</item> 
    </style> 

</resources> 

和修改清單文件,以適應新的動作條爲:

android:theme="@style/TranslucentAB" 

的問題是,代碼下面的兩行所需要的API級11和向上:

<item name="android:windowActionBarOverlay">true</item> 
<item name="android:actionBarStyle">@style/BlackBar</item> 

但我需要API等級8以上的支持。如果我刪除這兩行,應用程序運行良好的Android 2.2與黑色半透明的行動欄。但是,如果我在Android 4.3中運行應用程序,該應用程序將啓動一個穩定的白色操作欄。 halfblack只是一個帶有70%黑色的可繪製文件夾中的png文件。

回答

6

找到解決我的問題:

我不得不在RES /值-V11單獨styles.xml支持Android 3.0的相同的功能和高達

5

要使用操作欄覆蓋與支持庫,做到這一點:

<!-- Support library compatibility --> 
    <item name="windowActionBarOverlay">true</item> 

注意如何樣式名稱不包括android:前綴。

+0

感謝回答格雷格但是這就是問題所在。如果我像你說的那樣覆蓋只是在Android 2.2中,而不是在4.3中,這就是爲什麼我必須使用android:windowsActionBarOverlay。我必須手動刪除由此造成的lint錯誤,然後運行該應用程序才能支持android 3.0及更高版本中的覆蓋。有什麼辦法來抑制XML中的api錯誤嗎? – Rakesh

+0

嗯,你的主題來自Theme.AppCompat? (它應該是)。而且你應該只使用windowActionBarOverlay而不使用android:前綴。你是正確的,另一個會導致API設計錯誤。 –

+1

找到解決我的問題: 我不得不在水庫單獨styles.xml /值-V11支持的Android 3.0及以上 – Rakesh

相關問題