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);