2015-01-17 12 views
12

Con la barra degli strumenti AppCompat, voglio essere in grado di cambiare il colore dell'icona del menu di overflow sulla modifica di ActionMode.Barra degli strumenti AppCompat: Cambia colore icona overflow in ActionMode

Ad esempio, l'icona di overflow sarà bianca nella normale modalità Barra degli strumenti. E diventerà nero su ActionMode. Finora, sono riuscito a modificare lo sfondo della modalità di azione e il testo del titolo. Ma devo ancora trovare un modo per cambiare il colore dell'icona del menu di overflow.

So che c'è una risposta disponibili: Change ActionMode Overflow icon

ho provato la prima soluzione e non ero in grado di trovare l'icona di overflow.

La seconda soluzione, anche con un ritardo di 50L, fa in modo che l'icona del menu di overflow lampeggi il colore desiderato di ActionMode per una breve frazione di secondo che è molto fastidioso.

risposta

40

Aggiungere la riga in basso nella vostra attributo tema:

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

Non so di avere anche una seconda soluzione, controlla questo 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

Attenzione, questo cambierà anche il colore del testo nel menu in basso (che viene mostrato premendo il tasto speciale) su alcuni dispositivi. Questo può essere un problema se 'textColorSecondary' e lo sfondo del menu sono impostati sullo stesso colore (o simile). – Storix

+2

approccio Bette sarebbe creando uno stile separato per esso: ' @ Android: il colore/bianco ' – Ariq

4

Data la seguente barra degli strumenti:

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

definire uno stile, che eredita da entrambi ThemeOverlay.AppCompat.ActionBar o la variante Dark. È possibile modificare il colore dell'icona di overflow impostando l'attributo textColorPrimary. Se sei interessato a cambiare il colore dello ActionBarDrawerToggle, puoi anche impostare colorControlNormal.

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

È possibile modificare lo stile della barra degli strumenti utilizzando lo stesso metodo legato nella sua interrogazione, cioè getSupportActionBar().getThemedContext().getTheme().applyStyle, ecc

+1

Hi. grazie per aver risposto ... Ma il problema era che il colore del menu icona di overflow è condiviso dall'icona di overflow di ActionMode e dall'icona di overflow di Toolbar. L'obiettivo era avere un colore diverso per entrambi. – 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

Per modificare correttamente il colore dell'icona del menu di overflow della barra degli strumenti, imposta il tema della barra degli strumenti su un tema ActionBar scuro AppCompat. Per esempio:

Nel vostro/i valori del file res/style.xml creare un tema che eredita da AppCompat in questo modo:

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

Ora impostare il tema del vostro barra degli strumenti per questo tema:

<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

Aggiungere questo codice sul tuo RES-> styles.xml

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

Allora il tuo stile 'ToolbarColored' in y il nostro file XCML come 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

primo a rendere il vostro stile personalizzato

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

Poi basta aggiungere nella tua barra degli strumenti

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