titulo studio personalizar icono example cambiar boton bar agregar actionbar android material-design android-actionmode

android - studio - Cómo personalizar la barra de acción contextual usando appCompat en diseño de materiales



personalizar toolbar android studio (3)

Para cambiar el color del título de la barra de acción contextual, este fue el único método que me funcionó:

Escribe esto en el tema de tu actividad

<item name="actionModeStyle">@style/ContextualActionModeTheme</item>

Definir los estilos.

<style name="ContextualActionModeTheme" parent="@style/Widget.AppCompat.ActionMode"> <item name="titleTextStyle">@style/titleColor</item> </style> <style name="titleColor" parent="TextAppearance.AppCompat.Widget.ActionMode.Title"> <item name="android:textColor">@color/your_color_here</item> </style>

El color del título de su barra de acción contextual se cambiaría.

MainActivity.java

He implementado MultiChoiceModeListener en esta clase y debajo está el código:

en listView :

listView.setMultiChoiceModeListener(MainActivity.this); listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE_MODAL); @Override public boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) { switch (arg1.getItemId()) { case R.id.save: // Close CAB arg0.finish(); return true; case R.id.saveto: // Close CAB arg0.finish(); return true; default: return false; } } @Override public boolean onCreateActionMode(ActionMode arg0, Menu arg1) { arg0.getMenuInflater().inflate(R.menu.save_menu, arg1); return true; } @Override public void onDestroyActionMode(ActionMode arg0) { listadaptor.removeSelection(); } @Override public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) { return false; } @Override public void onItemCheckedStateChanged(ActionMode arg0, int arg1, long arg2, boolean arg3) { final int checkedCount = listView.getCheckedItemCount(); arg0.setTitle(checkedCount + " "+getResources().getString(R.string.selected)); listadaptor.toggleSelection(arg1); }

style.xml

<style name="AppTheme.Base" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/White</item> <item name="android:windowNoTitle">true</item> <item name="windowActionModeOverlay">true</item> <item name="windowActionBar">false</item> <item name="actionModeStyle">@style/LStyled.ActionMode</item> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppTheme.Base"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style> <style name="LStyled.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> <item name="background">@color/colorPrimary</item> </style> <style name="ActionBarThemeOverlay" parent="Theme.AppCompat.Light"> <item name="android:textColorPrimary">#fff</item> <item name="colorControlNormal">#fff</item> <item name="colorControlHighlight">#3fff</item> </style> <style name="HeaderBar"> <item name="android:background">#009688</item> <item name="android:textStyle">bold</item> </style> <style name="ActionBarPopupThemeOverlay" parent="ThemeOverlay.AppCompat.Light"> <item name="android:textColor">#000</item> </style>

a continuación se muestran mis capturas de pantalla:

puede ver ambas capturas de pantalla, en la segunda captura de pantalla, el fondo del modo de acción es blanco y el color del texto también es blanco. Quiero cambiarlo al color de las primeras capturas de pantalla que está en la parte superior.


Puede cambiar el fondo de ActionMode través del atributo actionModeStyle :

<style name="AppTheme.Base" parent="Theme.AppCompat.Light"> .... .... <item name="actionModeStyle">@style/LStyled.ActionMode</item> </style> <style name="LStyled.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> <item name="background">@color/color_action_mode_bg</item> </style>

Por supuesto, deberá definir un color llamado color_action_mode_bg :

<color name="color_action_mode_bg">#009688</color>

Hay otras cosas que también puedes cambiar. Ejemplo:

<item name="titleTextStyle">...</item> <item name="subtitleTextStyle">...</item> <item name="height">...</item>

Para cambiar el color del texto de SAVE y SAVETO , agregue lo siguiente a AppTheme.Base :

<item name="actionMenuTextColor">@color/color_action_mode_text</item>


use actionModeBackground en su estilo AppTheme.Base .

<item name="actionModeBackground">@color/colorPrimary </item> (or) <item name="android:actionModeBackground">@color/colorPrimary </item>