support studio spigot item bar actionbar android android-actionbar

android - studio - Configuración de fondo ActionMode mediante programación



android add button to action bar (2)

Soy consciente de android:actionModeBackground que se puede usar en temas XML.

¿Hay una manera de establecer este fondo en el código?

Básicamente necesito el modo de acción equavalente de

getActionBar().setBackgroundDrawable(drawable);


Me di cuenta con la ayuda de la reflexión. Porque no tengo una barra de acción

public static void setActionModeBackgroundColor(ActionMode actionMode, int color) { try { StandaloneActionMode standaloneActionMode = (StandaloneActionMode) actionMode; Field mContextView = StandaloneActionMode.class.getDeclaredField("mContextView"); mContextView.setAccessible(true); Object value = mContextView.get(standaloneActionMode); ((View) value).setBackground(new ColorDrawable(color)); } catch (Throwable ignore) { } }

También hay 2 implementaciones de ActionMode: StandaloneActionMode y ActionModeImpl. este ejemplo solo para el primero. Para el segundo será igual.


Puedes obtener el ID de ActionMode usando este action_context_bar

int amId = getResources().getIdentifier("action_context_bar", "id", "android"); View view= findViewById(amId); view.setBackground(actionModeBackground);