Wie benutzt man das Holo.Light-Thema, aber die ActionBar nutzen Holo mit ICS?

Ich hätte gern eine dunkle ActionBar, aber den Rest der Anwendung benutzt das Holo.Light Thema. Ich weiß, es gibt ein Theme.Holo.Light.DarkActionBar Theme in ICS / 4.0 aber ich möchte das auch in Honeycomb / 3.0 + arbeiten.

Im Moment benutze ich das dunkle Holo-Thema und für den Rest meiner Komponenten verwende ich einen ContextThemeWrapper. Aber das ist viel Arbeit und kann leicht zu Fehlern führen.

  • Android 3.x NUR WebView Textauswahl + JavaScript
  • Wie kann ich die Farbe und den Text des Action-Modus anpassen?
  • Android Action Bar benutzerdefinierte Dropdown-Ansicht auf Element klicken
  • Flash in WebView funktioniert nicht auf Android 3.2
  • Android GridView Klick wird nicht erkannt
  • Symbol für Menüpunkte der Aktionsleiste in Honeycomb android anzeigen 3.0
  • Ist das möglich?

  • Wie kann ich die Farbe und den Text des Action-Modus anpassen?
  • Android-Tab-Aktionsleiste
  • ActionBar Textfarbe
  • Kontextuelle Aktionsbar in Bienenwabe
  • Wie ändere ich die Hintergrundfarbe von Action Bar's Option Menü in Android 4.2?
  • Drawable Ausgabe mit Thema
  • 3 Solutions collect form web for “Wie benutzt man das Holo.Light-Thema, aber die ActionBar nutzen Holo mit ICS?”

    Erstellen Sie einen benutzerdefinierten Stil und legen Sie die Parent-Stil auf die Holo Light Thema, sondern die ActionBar zu normalen Holo.

    Eine xml-Datei mit so etwas sollte der Job machen (nur aus meinem Gedächtnis):

    <style name="appstyle0" parent="android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@android:style/Widget.Holo.ActionBar</item> </style> 

    Dann setze den appstyle0 in deinem AndroidManifest.xml als Stil und in all deinen Aktivitäten sind Holo Licht Thema, aber die Action-Bar-Stil ist holo dunkel.

    Edit: Ich habe überprüft, warum meine erste Antwort nicht funktioniert.

     <style name="Widget.Holo.Light.ActionBar" parent="Widget.Holo.ActionBar"> <item name="android:titleTextStyle">@android:style/TextAppearance.Holo.Widget.ActionBar.Title</item> <item name="android:subtitleTextStyle">@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle</item> <item name="android:background">@android:drawable/ab_transparent_light_holo</item> <item name="android:backgroundStacked">@android:drawable/ab_stacked_transparent_light_holo</item> <item name="android:backgroundSplit">@android:drawable/ab_bottom_transparent_light_holo</item> <item name="android:homeAsUpIndicator">@android:drawable/ic_ab_back_holo_light</item> <item name="android:progressBarStyle">@android:style/Widget.Holo.Light.ProgressBar.Horizontal</item> <item name="android:indeterminateProgressStyle">@android:style/Widget.Holo.Light.ProgressBar</item> </style> 

    Die Aktionsleiste ist in styles.xml mit Attributen definiert, die vom Hauptthema im Allgemeinen festgelegt werden. Zuerst ist das BG transparent, also solltest du "Widget.Holo.Light.ActionBar.Solid" als übergeordnet verwenden. Dann musst du die verschiedenen Gegenstände eins nach dem anderen auf das dunkle Thema stellen. Nehmen wir titleTextStyle als Beispiel:

     <style name="TextAppearance.Holo.Widget.ActionBar.Title.Own" parent="TextAppearance.Holo.Widget.ActionBar.Title"> <item name="android:textColor">@android:color/primary_text_holo_dark</item> <item name="android:textColorHighlight">@android:color/highlighted_text_holo_dark</item> <item name="android:textColorHint">@android:color/hint_foreground_holo_dark</item> <item name="android:textColorLink">@android:color/holo_blue_light</item> </style> 

    Setz das jetzt als

     <item name="android:titleTextStyle">@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Own</item> 

    Gehen Sie so mit den obigen xml-Attributen vor.

    Um alle verwandten Attribute zu finden, suchen Sie in styles.xml und themes.xml für die Parameter. Sorry zu erzählen, aber ich denke, es gibt keinen leichten Weg, nach dem, was ich sehe …

    Ich lief in ein ähnliches Problem, wenn ich eine benutzerdefinierte Ansicht in der Aktionsleiste setzen wollte. Ich wollte eine dunkle Aktionsleiste, während der Rest der App Licht blieb. Genauer gesagt hatte ich Spinner in der Action Bar.

    Zuerst sollte Ihr Thema erweitern

     <style name="MyTheme.Light" parent="android:Theme.Holo.Light.DarkActionBar"> 

    Als nächstes verwenden Sie von Ihrer Aktivität getActionBar().getThemedContext() als Kontext für das Aufblasen Ihrer Ansichten. In meinem Fall ist es, was ich an meine Spinner Array Adapter passiert.

    Für mich perfekt gearbeitet.

    Fand es einfach … 100% funktioniert

    Füge die folgende Zeile zu Assemblyinfo.cs hinzu

     [assembly: Application(Theme = "@android:style/Theme.Material.Light.DarkActionBar")] 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.