studio programacion navegacion hacer desplegable contextual con como barra activity android android-actionbar contextual-action-bar

android - programacion - Estilos contextuales de la barra de acción



menu navegacion android studio (4)

Para cambiar el color / etc del texto en una barra de acción contextual:

public boolean onCreateActionMode(ActionMode mode, Menu menu) { //mode.setTitle("Contextual Action Bar"); (replace this call) TextView tv= (TextView)getLayoutInflater().inflate(R.layout.contextual_title, null); tv.setText("Contextual Action Bar"); mode.setCustomView(tv);

donde layout / contextual_title.xml contiene un solo TextView con el color / tamaño / estilo deseado, etc.

De hecho, casi todo en una barra de acción contextual se puede diseñar. El único problema es que la búsqueda de la palabra ''contextual'' no lleva a ningún lado útil. Las características de estilo relevantes se denominan "actionMode ...". Aquí hay algunos que utilicé (definidos en mi tema).

<item name="android:actionModeCloseDrawable">@drawable/check</item> <item name="android:actionModeCutDrawable">@drawable/ic_menu_cut_holo_dark</item> <item name="android:actionModeCopyDrawable">@drawable/ic_menu_copy_holo_dark</item> <item name="android:actionModePasteDrawable">@drawable/ic_menu_paste_holo_dark</item> <item name="android:actionModeSelectAllDrawable">@drawable/ic_menu_selectall_holo_dark</item> <item name="android:actionModeBackground">@drawable/contextual</item> <item name="android:actionModeCloseButtonStyle">@style/MyCloseButton</item> <!-- these change the press backgrounds for the vanilla actionBar and for search --> <item name="android:windowContentOverlay">@null</item> <item name="android:selectableItemBackground">@drawable/bar_selector</item> <item name="android:actionBarItemBackground">@drawable/bar_selector</item> <!-- these were defined in platform/.../data/res/values/... but Eclipse didn''t recognize them --> <!--? item name="android:actionModeShareDrawable">@drawable/icon</item --> <!--? item name="android:actionModeFindDrawable">@drawable/icon</item --> <!--? item name="android:actionModeWebSearchDrawable">@drawable/icon</item --> <!-- item name="android:actionModeBackground">@drawable/red</item --> <!-- and finally --> <style name="MyCloseButton" parent="android:style/Widget.ActionButton.CloseMode"> <item name="android:background">@drawable/bar_selector</item> </style>

Puede configurar fácilmente sus propios iconos de edición / texto de corte / pegar / copiar / seleccionar, el fondo de la barra y el fondo del icono que cambia de color cuando presiona los iconos (barra_selector arriba). Los íconos son ImageViews, no botones, y los ID de edición (y el fondo presionable) se adjuntan a los padres de ImageView (uno de los padres por vista) que es un tipo ''interno''.

Nunca está claro qué sucede en los estilos; descubrí dónde se encontraba SelectableItemBackground en la plataforma Themes.xml, y copié y modifiqué el elemento dibujable apuntado.

Estoy buscando información de estilo en la barra de acción contextual (CAB). Solo necesito cambiar el color del texto de hecho ..

Como se puede ver en lo que antecede , esto está usando el tema estándar Theme.Holo.Light.DarkActionBar , así que solo necesito configurar el color del texto en blanco

¿Alguien puede señalarme en la dirección correcta?


Publiqué un comentario a mi propia pregunta, y esto es realmente un error en la versión de Android que estaba usando (Probablemente una versión anterior de 4.0)

Este es el error descrito: code.google.com/p/android/issues/detail?id=26008


Si está iniciando el modo de acción contextual manualmente, puede llamar a setTheme () con un nuevo tema antes de iniciarlo (tal vez Theme.AppCompat.Light.DarkActionBar si está tratando de evitar el problema del texto en negro sobre negro). Esto no afectará el tema de la actividad actual si ya configuró la vista de contenido de la actividad.

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_activity_layout); // these lines can occur anywhere so long as you''ve already // called "setContentView()" on the activity. The theme // you set here will apply to the action mode, but not to // the activity. setTheme(R.style.Theme_AppCompat_Light_DarkActionBar); startSupportActionMode(myActionModeCallback); }


funciona ahora, pero debe ingresarlo en values ​​/ styles.xml (no values-v # / styles.xml) e ingresarlo en la etiqueta general (no específica de API)

<!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionModeCloseDrawable">@drawable/ic_launcher</item> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style>