2017-08-02 17 views
0

サポートActionBarの背景drawableを変更すると、ほとんどのバーの色が変更されますが、テキストとアイコンの周りに古い色が残ります。私は、サポートするActionBarとそれを作成するために使用したToolBarの色を変更しようとしました。私はUI要素を無効にするさまざまな方法を試みました。私は色とテキストを設定するのに疲れていますが、異なる注文です。私は隠して、テキストを表示しようとしました。私はそれを単色に変えることはできません。supportActionBarの色をプログラムで変更する

Should be all orange

は、ここで私は私のアクションバーのスタイルを持っているものです。

<style name="LocationBar" parent="ThemeOverlay.AppCompat.ActionBar"> 
    <item name="android:textColorPrimary">@color/text_color_primary_inverse</item> 
    <item name="android:textColorSecondary">@color/text_color_primary_inverse</item> 
    <item name="android:background">@color/weather_cool</item> 
</style> 

は、これは私が私の活動にそれを追加している方法です:Javaコードで

<android.support.v7.widget.Toolbar 
    android:id="@+id/location_bar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:theme="@style/LocationBar"/> 

この私がsupportActionBarとして設定します。

_locationBar = (Toolbar)findViewById(R.id.location_bar); 
setSupportActionBar(_locationBar); 

は、その後、私は天候をフェッチした後、私はこのような色を調整してみてください:

あなたが絵に見えるものになり
ColorDrawable warmDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.weather_warm)); 
getSupportActionBar().setBackgroundDrawable(warmDrawable); 

。バーのほとんどは色を変えますが、すべてを変えるわけではありません。

+1

した後、あなたの 'styles.xml'を共有することはできますか? – azizbekian

+0

テーマを変更することができます。 –

+0

私はもっと多くの情報を追加します。申し訳ありませんが、それは遅く、私は考えていませんでした! – CaseyB

答えて

1

と背景色を変更しますあなたが代わりにandroid:themeを使用しているので、これが起こっている アイコン...

理由がありますstylethemeは、Toolbarのすべての子供に適用されます。この場合は、TextViewのタイトル背景と設定ボタンの背景が含まれます。 styleはビューレベルで使用するためのもので、Toolbarの背景にのみ適用されます。

<android.support.v7.widget.Toolbar 
    ... 
    android:theme="@style/LocationBar" /> 

<android.support.v7.widget.Toolbar 
    ... 
    style="@style/LocationBar" /> 
0

あなたのアクティビティクラスに以下のコードを書いてください。

ActionBar bar = getActionBar(); 
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#004D40"))); 

これは、アクションバーはバーのほとんどの 色を変更しますが、テキストの周りの古い色を残し支援の背景描画可能に変更... #004D40

+0

これは私がやっていることであり、その結果の画像を得ることです。 – CaseyB

関連する問題