我知道可以在XML主题中使用的android:actionModeBackground

有没有办法在代码中设置此背景?

基本上我需要等价的ActionMode

getActionBar().setBackgroundDrawable(drawable);

最佳答案

我想出了反射帮助。因为我没有 Action 栏

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) {
        }
    }

另外,还有两种ActionMode实现:StandaloneActionMode和ActionModeImpl。此示例仅适用于第一个。对于第二个,它将是相同的

10-07 19:25