[英]Android SDK: Can't style ActionBar of support library
出於某種原因,在實現support-v7時,無法使用style.xml設置操作欄的樣式。
我有兩個樣式文件。 這是來自values文件夾的style.xml:
<resources>
<color name="primary">#009688</color>
<color name="primaryDark">#00796B</color>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/myActionBar</item>
</style>
<style name="myActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/primary</item>
</style>
</resources>
值-v21中的棒棒糖樣式如下:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primaryDark</item>
</style>
</resources>
這里發生了什么:
1)默認情況下,我的應用從support-v7庫實現android.support.v7.app.ActionBarActivity。 當我啟動它時:
a)在Android 4.4上,操作欄未着色,就像以前一樣是黑暗的。
b)在Android 5設備上,它也不是彩色的,但是狀態欄會變為彩色。
因此,操作欄樣式不適用於support-v7的欄。 即使將全局textColor參數設置為明亮的值,每個文本也會更改顏色,但只有我的應用程序標題保持白色。
但是,我仍然可以在代碼中為其着色: getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#673AB7")))
。
2)如果我為我的應用實現了android.app.Activity(不是android.support.v7.app.ActionBarActivity):
a)棒棒糖設備獲得整潔的綠色操作欄和整潔的綠色狀態欄。 b)但在4.4動作條上完全消失。
我嘗試使用主題標簽上的values / style.xml中的這些樣式參數將其恢復,但是它們都不起作用:
<item name="android:windowActionBar">true</item>
<item name="android:displayOptions">showTitle</item>
最小SDK設置為15。
如何在兩個平台上獲取樣式化的操作欄?
遵循本指南 :
1)您的所有活動都必須從ActionBarActivity擴展,而ActionBarActivity從v4支持庫的FragmentActivity擴展,因此您可以繼續使用片段。
2)刪除values-v21 / themes.xml並僅保留values / themes.xml
3)告訴Android將工具欄用作ActionBar:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
4)在您的style.xml中,替換
<style name="myActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/primary</item>
</style>
與
<style name="myActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/primary</item>
</style>
只需將它們設置為values / style.xml中的自定義基本主題
<item name="colorPrimary">@color/your_primary_color</item>
<item name="colorPrimaryDark">@color/your_primary_dark_color</item>
<item name="colorAccent">@color/your_accent_color</item>
<item name="windowActionBar">false</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
並使用android.support.v7.widget.Toolbar
。 確保您使用的是支持庫v21或更高版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.