簡體   English   中英

更改 ActionBarSherlock 背景顏色

[英]Change ActionBarSherlock background color

我正在嘗試實施 ActionBarSherlock,因為有人告訴我實施和定制相對容易。 我發現它很容易實現,但我試圖改變 ActionBar 的背景顏色,但事實證明這很困難。

根據站點 (鏈接),您似乎可以繼承 ActionBarSherlock 的主題之一,然后覆蓋您需要的屬性。

這是我到目前為止所擁有的:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="Theme.ActionBar" parent="Theme.Sherlock.ForceOverflow">
      <item name="android:background">#000000</item>
      <item name="background">#000000</item>
    </style>
</resources>

我注意到內置主題使用圖像作為背景,但我祈禱我不必創建圖像來更改背景顏色。

謝謝。

操作欄背景顏色是在操作欄的樣式中定義的,而不是在主題本身中。 你需要做這樣的事情:

<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
</style>

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">#ff000000</item>
    <item name="background">#ff000000</item>
</style>

使用 XML 中定義的 colors 時要小心ColorDrawable不遵守它在 Honeycomb 之前的視圖邊界,因此如果您使用具有單獨背景的選項卡導航來堆疊選項卡視圖,您將遇到問題。

我剛用

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00853c")));

它改變了背景顏色。 希望能幫助到你。

Jake Wharton 提到的代碼是真實的。 但是,當將代碼應用於 styles.xml 時,如果您的 minSDK<11 可能無法正常工作,因為 API-11+ 支持 android:actionBarStyle

要解決該錯誤:

在您的 res 文件夾中創建一個 values-v11 的文件夾,並創建 XML 文件,如上所述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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