Modo de acción cerrar el color del texto del botón
Veo para establecer el color de texto del modo de acción "hecho" / "cerrar" botón. Esto es lo que he intentado:
<item name="android:actionModeCloseButtonStyle">@style/ActionModeCloseButton</item> .... <style name="ActionModeCloseButton" parent="android:style/Widget.Holo.ActionButton.CloseMode"> <item name="android:textColor">@android:color/white</item> </style>
Pero no tiene efecto.
- Contenido de la barra de herramientas Android
- Android: ocultar la barra de acción durante el inicio y luego volver a mostrarla?
- Barra de acción El botón Atrás no funciona
- Personalizar Android ActionBar
- Cambiar la barra de acción en color
Tenga en cuenta que en JB, es suficiente que haga que el estilo de ActionModeCloseButton
sea el tema holo regular. Funciona bien allí (sin la configuración textColor
incluso).
¿Algunas ideas? Gracias.
- GetActionBar () no está definido
- Acción Elementos que no se muestran en ActionBar con showAsAction = "ifRoom"
- Android: setActionView (null) no elimina problemas de vista y anchura en MenuItem con ActionView
- ClassCastException: android.support.v7.widget.ShareActionProvider
- OnNavigationItemSelected en ActionBar se está llamando en el inicio cómo puede evitarlo?
- Cambiar el icono de búsqueda en la barra de acción
- El título de ActionBar no está visible
- Cómo utilizar SearchView en la barra de herramientas de Android
En primer lugar, la vista de texto "Hecho" sólo es visible en dispositivos grandes. Realizar el action_mode_close_item.xml
en la fuente de Android. Así que el android:actionModeCloseButtonStyle
sólo se aplica a la vista que contiene y no la vista de la imagen y la vista de texto.
Afortunadamente, los ingenieros androideos usaron atributos accesibles públicamente para estilos de las vistas de los niños.
- Use
android:actionMenuTextColor
para cambiar a textColor del TextView. - Utilice
android:actionModeCloseDrawable
para cambiar el drawable del ImageView
Ejemplo:
<style name="MyTheme"> <item name="android:actionMenuTextColor">#ff000000</item> <item name="android:actionModeCloseDrawable">@drawable/my_close_drawable</item> </style>
A continuación se muestra una copia del action_mode_close_item.xml
en la action_mode_close_item.xml
layout-large
-folder donde puede ver cómo se construye el diseño.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/action_mode_close_button" android:focusable="true" android:clickable="true" android:paddingStart="8dip" style="?android:attr/actionModeCloseButtonStyle" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginEnd="16dip"> <ImageView android:layout_width="48dip" android:layout_height="wrap_content" android:layout_gravity="center" android:scaleType="center" android:src="?android:attr/actionModeCloseDrawable" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginStart="4dip" android:layout_marginEnd="16dip" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?android:attr/actionMenuTextColor" android:textSize="12sp" android:textAllCaps="true" android:text="@string/action_mode_done" /> </LinearLayout>
Dado que el diseño del botón de cierre del modo de acción no proporciona un atributo de color para la vista de texto, no hay forma de establecer este color en un tema personalizado. En cambio, el único ay que encontré fue sobrescribir el color de texto en el método onPrepareActionMode()
de mi clase ActionMode
derivada:
@Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... none) { try { Thread.sleep(100); } catch (InterruptedException e) { } return null; } @Override protected void onPostExecute(Void none) { if (activity != null) { LinearLayout layout = (LinearLayout) activity .findViewById(R.id.abs__action_mode_close_button); if (layout == null) { int id = Resources.getSystem().getIdentifier( "action_mode_close_button", "id", "android"); layout = (LinearLayout) activity.findViewById(id); } if (layout != null && layout.getChildCount() > 1) { TextView label = (TextView) layout.getChildAt(1); if (label != null) label.setTextColor(Color.RED); } } } }.execute(); return false; }
Trabajó con dos dispositivos pre y post Android 4.0.
- Cómo utilizar el adaptador mientras llena los diseños
- Cómo llamar a la pestaña Onclick y OnTabChange para la misma pestaña