38

ich dieses Tutorial verwendet, um meine Holo-App für Lollipop Facelift: http://android-developers.blogspot.ru/2014/10/appcompat-v21-material-design-for-pre.htmlStyling ActionMode ActionBar in Android 5.0 Lollipop (mit AppCompat)

Was ich habe:

  1. Theme

    <style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
        <item name="windowActionModeOverlay">true</item> 
        <item name="colorPrimary">@color/theme_primary</item> 
        <item name="colorPrimaryDark">@color/theme_primary_dark</item> 
        <item name="colorAccent">@color/theme_accent</item> 
    </style> 
    
  2. Layout der Symbolleiste

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/apk/res-auto" 
        android:id="@+id/toolbar" 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent" 
        android:minHeight="?attr/actionBarSize" 
        android:background="?attr/colorPrimary" 
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 
    
  3. Aktivität geerbt von ActionBarActivity mit einem ListFragment Fragmente in dem Multi-Choice-Modus

    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);

Ergebnis: Die Symbolleiste ist OK. Es verwendet die einzelnen Themenfarben, aber die ActionBar, die von ListFragment im ActionMode verwendet wird (aktiviert durch Antippen und Halten eines Listenelements), verfügt über die Standardfarbe Dark.ActionBar. Auch das Popup-Menü der Aktionsleiste verwendet das dunkle Thema.

Ich habe alle SO Tricks versucht, aber immer noch nicht lösen kann. Ich werde jede Hilfe schätzen.

BTW. Ich habe festgestellt, dass die dunklen Farben der ActionBar von app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" der Toolbar verursacht werden, aber ich habe keine Ahnung, wie das gelöst werden kann, da dieses Attribut für die korrekte Darstellung der Symbolleiste benötigt wird.

Toolbar with correct colorsDark ActionBar

Antwort

75

Gerade diese beiden Zeilen zu dem Thema hinzu:

<item name="actionModeBackground">@color/theme_primary_dark</item> 
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item> 
+0

Nach viel Zeit für dieses Problem funktioniert das tatsächlich. Danke! – Sandra

+29

Viel Zeit verschwendet, um dies zum Laufen zu bringen, nur um zu erkennen, dass Sie den _ "android:" _ Teil des Namens des Objekts entfernen müssen, damit dies in AppCompat's Toolbar funktioniert. Hoffe, dass dies hilft anderen Menschen lesen diesen Thread :) – Jun

+1

danke! Was ist mit Statusleiste Farbe? es wird weiß, wenn "actionmode" angezeigt wird? – sajad

3

neben @Andrey Shcherbakov ‚s Antwort Dies könnte auch hilfreich sein, wenn Sie mehr Kontrolle jeder einzelnen Farbe haben wollen.

<!-- action bar title text color, icon color (ie: back icon, icons when editing text)--> 
<item name="android:textColorPrimary">#FFFF00</item> 

<!-- action bar background color--> 
<item name="android:colorBackground">#444400</item> 

<!-- color of line under contextual action bar--> 
<item name="colorControlActivated">#00CC00</item> 
Verwandte Themen