2015-01-17 10 views
12

Mit der AppCompat Toolbar möchte ich die Farbe des Überlaufmenüsymbols bei ActionMode ändern ändern können.AppCompat Toolbar: Änderung der Überlaufsymbolfarbe in ActionMode

Zum Beispiel wird das Überlaufsymbol im normalen Symbolleistenmodus weiß angezeigt. Und wird bei ActionMode schwarz. Bis jetzt ist es mir gelungen, sowohl den Hintergrund des Aktionsmodus als auch den Titeltext zu ändern. Aber ich muss noch eine Möglichkeit finden, die Farbe des Überlaufmenüsymbols zu ändern.

Ich weiß, dass es eine Antwort zur Verfügung: Change ActionMode Overflow icon

habe ich versucht, die erste Lösung, und ich war nicht in der Lage das Überlaufsymbol zu finden.

Die zweite Lösung, selbst mit einer Verzögerung von 50 l, bewirkt, dass das Überlaufmenü-Symbol die beabsichtigte Farbe des ActionModes für einen kurzen Bruchteil einer Sekunde aufblinkt, was sehr störend ist.

Antwort

40

die unterhalb der Linie in Ihrem Thema Attribut hinzufügen:

<item name="android:textColorSecondary">@android:color/white</item> 
+0

Ich weiß nicht, ich habe auch eine zweite Lösung, überprüfen Sie bitte diesen Link http://stackoverflow.com/questions/26671677/android-appcompat-21-how-to-change-the-back-icon-and-the-overflow -icon-to-a-cu/33938229 # 33938229 – Piyush

+3

Vorsicht, dies wird auch die Textfarbe im unteren Menü (die durch Drücken der Sondertaste angezeigt wird) auf einigen Geräten ändern. Dies kann ein Problem darstellen, wenn "textColorSecondary" und der Menühintergrund auf dieselbe (oder ähnliche) Farbe eingestellt sind. – Storix

+2

Bette Ansatz wäre, durch einen separaten Stil für sie zu schaffen: ' ' – Ariq

4

die folgende Symbolleiste Gegeben:

<android.support.v7.widget.Toolbar 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    theme="@style/MyToolbarStyle" /> 

einen Stil definieren, entweder von ThemeOverlay.AppCompat.ActionBar oder Dark Variante erben. Sie können die Farbe des Überlaufsymbols ändern, indem Sie das Attribut textColorPrimary festlegen. Wenn Sie daran interessiert sind, die Farbe des ActionBarDrawerToggle zu ändern, können Sie auch colorControlNormal einstellen.

<style name="MyToolbarStyle" parent="ThemeOverlay.AppCompat.ActionBar"> 
    <item name="colorControlNormal">#333333</item> 
    <item name="android:textColorPrimary">#333333</item> 
</style> 

Sie können die Symbolleiste Stil ändern mit der gleichen Methode wie in Ihrer Frage verknüpft, dh getSupportActionBar().getThemedContext().getTheme().applyStyle usw.

+1

Hallo machen Dann fügen. Danke für die Antwort ... Aber das Problem war, dass die Farbe des Überlauf-Icon-Menüs vom Überlauf-Icon des ActionModes und dem Überlauf-Icon der Toolbar geteilt wird. Das Ziel war es, eine andere Farbe für beide zu haben. – Jun

3
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:actionOverflowButtonStyle">@style/ActionButton.Overflow.Icon</item> 
</style> 

<style name="ActionButton.Overflow.Icon" parent="android:style/Widget.Holo.Light.ActionButton.Overflow"> 
    <item name="android:src">@mipmap/yourwanticon</item> 
</style> 
1

Um die Farbe des Überlaufmenü-Symbols der Symbolleiste korrekt zu ändern, setzen Sie das Thema der Symbolleiste auf ein AppCompat-dunkles ActionBar-Thema. Zum Beispiel:

In Ihrer res/Werte/style.xml Datei ein Thema erstellen, die von AppCompat auf diese Weise erbt:

<style name="AppTheme.MyThemeName" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

Jetzt ist Ihre Symbolleiste des Themas zu diesem Thema festgelegt:

<android.support.v7.widget.Toolbar 
    android:id="+id/my_toolbar_id 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/my_toolbar_height" 
    android:theme="@style/AppTheme.MyThemeName"> 

</android.support.v7.widget.Toolbar> 
1

Fügen Sie diesen Code auf Ihrer res-> styles.xml

<style name="ToolbarColored" parent="AppTheme"> 
<item name="android:textColorSecondary">YOUR_COLOR</item> 
</style> 

Dann Stil Ihre 'ToolbarColored' in y unsere XCML Datei wie belove

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     app:theme="@style/ToolbarColored" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 
0

zuerst Ihre benutzerdefinierten Stil

<style name="ToolbarColoredBackArrow" parent="AppTheme"> 
    <item name="android:textColorSecondary">@color/white</item> 
</style> 

einfach in Ihre Symbolleiste

 <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:titleTextColor="@color/white" 
      app:theme="@style/ToolbarColoredBackArrow" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:background="?attr/colorPrimary" /> 
Verwandte Themen