2017-03-01 95 views
1

我正在努力正確覆蓋默認主題應用程序欄顏色。 當我使用android:actionBarStyle時,它會更改顏色,但標題文本丟失。更改應用程序欄背景顏色

<resources> 
    <style name="ToolbarThemeStyle" parent="android:Theme.Material.Light"> 
    <item name="android:actionBarStyle">@style/ActionBarTitle.Background</item> 
    </style> 
    <style name="ActionBarTitle.Background" parent=""> 
    <item name="android:background">#8DC44E</item> 
    <item name="android:titleTextStyle">@style/ActionBarTitle.Text</item> 
    </style> 
    <style name="ActionBarTitle.Text" parent=""> 
    <item name="android:textColor">#FFFFFF</item> 
    </style> 
</resources> 

我試過Replacing the Action Bar但我想知道是否沒有更簡單更簡單的方法。

清單:

<application android:label="Home Automation" android:icon="@mipmap/ic_launcher" android:theme="@android:style/Theme.Material.Light"  
    </application> 

活動:

[Activity(Label = "Label", MainLauncher = false, Theme = "@style/ToolbarThemeStyle", NoHistory =true)] 
+0

的ActionBar動作條最大值; actionBar = getSupportActionBar(); actionBar.setBackgroundDrawable(R.drawable.alert_vehicle); –

+0

使用這個drawable創建定製的xml佈局 –

+0

看看這個鏈接,你一定會知道你的問題 –

回答

0

確保你在menifest或XML設置主題活動。在這裏,我分享了我可以參考的主題代碼。

<style name="MaterialAppTheme" parent="Theme.AppCompat.Light"> 
     <!-- colorPrimary is used for the default action bar background --> 
     <item name="colorPrimary">@color/white</item> 
     <item name="android:textColorSecondary">@color/red</item> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 
+0

我的默認主題是在Manifest中。我通過將活動主題設置爲XML來覆蓋應用程序欄。你的代碼給出了錯誤:找不到與給定名稱匹配的資源:attr'colorPrimary' – Jnr

+0

@Jnr我閱讀了你的評論。這是正確的,它編譯你已經聲明的SDK。它應該被安裝。 – vishal

0

此代碼應該是在你style.xml

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 
    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

</resources> 

並確保您應該的manifest.xml宣佈它

<application 
     android:name=".app.AppController" 
     android:allowBackup="true" 
     android:icon="@drawable/images" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
+0

請參閱我的更新。我在@vishal答案的評論中得到了同樣的錯誤。 – Jnr

+0

請貼上你的錯誤讓我看看它,你沒有粘貼相同的代碼,我已經在答案中給出 –

+0

我想你必須看看這個鏈接 –

1

感謝所有您的答覆。我想我會自己回答這個問題,而我花了幾個小時試圖弄清楚這一點。

顯而易見的解決方案是this page下使用自定義主題,但我得到的錯誤「沒有資源的發現,給定的名稱匹配(安卓基色)」。更改android:minSDKVersion=23也沒有工作。

我去應用程序屬性,並設置到當前定位框架「使用Android版本編譯」(即API 23),而不是將其未安裝尚未設置爲API 25.