37

実装とカスタマイズが比較的簡単であると言われたため、ActionBarSherlockを実装しようとしています。実装は非常に簡単でしたが、ActionBarの背景色を変更しようとしていて、難しいことがわかりました。

サイト(リンク)によると、ActionBarSherlockのテーマの1つを継承して、必要なプロパティをオーバーライドできるようです。

これは私がこれまでに持っているものです:

<?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>

組み込みのテーマが背景に画像を使用していることに気づきましたが、背景色を変更するために画像を作成する必要がないことを祈っています。

ありがとう。

4

3 に答える 3

77

アクションバーの背景色は、テーマ自体ではなく、アクションバーのスタイルで定義されます。次のようなことをする必要があります。

<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で定義された色の使用には注意してください。ColorDrawableは、Honeycomb以前のビュー境界を尊重していなかったため、スタックタブビューに別の背景を持つタブナビゲーションを使用すると、問題が発生します。

于 2012-04-08T19:36:05.207 に答える
54

使ったばかり

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

背景色を変更しました。それが役に立てば幸い。

于 2013-03-29T13:03:40.420 に答える
2

ジェイク・ウォートンが言及したコードは真実です。ただし、minSDK <11の場合、Android:actionBarStyleはAPI-11以降でサポートされているため、コードをstyles.xmlに適用すると機能しない場合があります。

そのエラーを解決するには:

resフォルダーにvalues-v11のフォルダーを作成し、上記のようにXMLファイルを作成します。

于 2013-09-17T18:10:21.053 に答える