2017-03-01 5 views
1

Ich habe Probleme, die Standardfarben der App-Leiste korrekt zu überschreiben. Wenn ich den android: actionBarStyle verwende, ändert sich die Farbe, aber dann fehlt der Titeltext.Ändern der Hintergrundfarbe für die App-Leiste

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

Ich habe Replacing the Action Bar versucht, aber ich frage mich, ob es gibt nicht eine kürzere und einfachere Art und Weise.

Manifest:

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

Aktivität:

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

ActionBar ActionBar; actionBar = getSupportActionBar(); actionBar.setBackgroundDrawable (R.drawable.alert_vehicle); –

+0

Verwenden Sie dieses Zeichen wie benutzerdefinierte XML-Layout erstellen –

+0

Werfen Sie einen Blick auf diesen Link werden Sie auf jeden Fall Ihr Problem kennen lernen –

Antwort

0

stellen Sie sicher, Sie sind Thema Aktivität in menifest oder xml Einstellung. Hier teile ich meinen Themencode, auf den Sie verweisen können.

<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

Mein Standardthema ist in Manifest. Ich überschreibe die App-Leiste, indem ich Aktivitätsdesign auf XML setze. Ihr Code gibt Fehler: Keine Ressource gefunden, die den angegebenen Namen entspricht: Attr 'ColorPrimary' – Jnr

+0

@Jnr Ich las Ihre Kommentare. Das ist richtig, das kompilierte SDK kompilieren. Es sollte installiert werden. – vishal

0

sollten Dieser Code ist in Sie

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

Und stellen Sie sicher style.xml sollten Sie es in manifest.xml erklärt haben

<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

Bitte beachten Sie mein Update. Ich bekomme die gleichen Fehler wie in @vishal Antwort der Kommentar. – Jnr

+0

Bitte einfügen Sie Fehler lassen Sie mich sehen, und Sie haben nicht den gleichen Code eingefügt, die ich in der Antwort gegeben habe –

+0

Ich denke, Sie müssen einen Blick auf diesen Link –

1

Dank allen für Ihre Antworten. Ich dachte, ich würde das selbst beantworten, während ich stundenlang versucht habe, das herauszufinden.

Die offensichtliche Lösung in this page war unter Verwendung von Themen Individuelle aber ich war immer den Fehler „Keine Ressource gefunden, dass entspricht den angegebenen Namen (android: Farbe Primary)“. Ändern android:minSDKVersion=23 hat auch nicht funktioniert.

ich auf Anwendungseigenschaften ging und stellen Sie die auf den aktuellen Targeting Framework „Android-Version Kompilieren mit“ (das heißt API 23) anstelle des Maximum, das noch installiert gesetzt API nicht wurde 25.

Verwandte Themen