[英]dark action bar with Theme.AppCompat
我正在為我的應用程序使用Theme.AppCompat
,以獲得深色外觀。 一切看起來都不錯,除了使用該主題的操作欄看起來很古老,即它有一個明亮的藍色底部分隔線。
我希望操作欄看起來像在Theme.AppCompat.Light.DarkActionBar
。
看着themes.xml ,我發現:
<style name="Theme.AppCompat.Light.DarkActionBar"
parent="Theme.Base.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">true</item>
</style>
<style name="Theme.Base.AppCompat.Light.DarkActionBar" parent="Theme.Base.AppCompat.Light">
<item name="actionBarDivider">@drawable/appcompat_divider_dark</item>
</style>
所以我創建自己的樣式,如下所示:
<style name="myTheme" parent="@style/Theme.AppCompat">
<item name="actionBarDivider">@drawable/appcompat_divider_dark</item>
</style>
但我得到構建錯誤:
No resource found that matches the given name (at 'actionBarDivider' with value
'@drawable/appcompat_divider_dark')
為什么我不能使用框架使用的同一個drawable?
藍線是用於操作欄的背景圖像的一部分。 例如,您可以在sdk/platforms/android-19/data/res/drawable-xxhdpi/ab_transparent_dark_holo.9.png
訣竅是通過繼承Widget.AppCompat.ActionBar
來創建自己的Widget樣式,並使用所需的png(沒有藍線)設置background屬性。 我使用支持庫的現有@drawable/abc_ab_bottom_transparent_dark_holo
。 您可以在sdk/extras/android/support/v7/appcompat/res/drawable-hdpi/
文件夾中找到它。
因此,在styles.xml文件中創建以下元素。
<style name="myActionBar" parent="@style/Widget.AppCompat.ActionBar">
<item name="android:background">@drawable/abc_ab_bottom_transparent_dark_holo</item>
</style>
然后在您的主題中包含這個新創建的樣式(已經存在於styles.xml文件中):
<style name="AppBaseTheme" parent="@style/Theme.AppCompat">
<item name="android:actionBarStyle">@style/myActionBar</item>
</style>
要在舊版API中啟用此更改,請對所有3個文件夾values-v14
, values-v12
和values
進行相同的更改。 需要注意的重要一件事是,不應將“ android:”命名空間用於values-v12
和values
文件夾中的名稱屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.