android - 仅在 Contextual ActionBar 中自定义溢出图标

标签 android android-actionbar android-theme android-styles contextual-action-bar

我有一个深色 ActionBar 和一个用于 ActionMode 的浅色 Contextual ActionBar。我看过this question关于更改 ActionBar 中的溢出图标,它可以工作,但我需要一种方法来仅为上下文 ActionBar 更改它。有办法做到这一点吗?

最佳答案

您可以只为溢出图标创建一个主题,然后在 ActionMode.Callback.onCreateActionMode 中使用 ContextThemeWrapper.setTheme。例如:

风格

<style name="Widget.ActionButton.Overflow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/your_overflow_icon</item>
</style>

<style name="CAB.Overflow" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionOverflowButtonStyle">@style/Widget.ActionButton.Overflow</item>
</style>

Action 模式

@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
    setTheme(R.style.CAB_Overflow);
    // Inflate your menu items
    return true;
}

正常CAB

Before After

关于android - 仅在 Contextual ActionBar 中自定义溢出图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21422275/

相关文章:

java - 在 Android 上使用 BridJ 时出现 UsatisfiedLinkError

Android - 如何摆脱 ActionBar 上方的栏

android - 从 WebView 导航到不同的父 Activity

android - 在现有项目中从 support-lib-v7-appcompat 切换到 actionbarsherlock lib

Android 设备 USB 调试要求输入我从未设置过的密码

android - 用户的 whatsapp 应用程序如何检测其联系人头像的变化?

android - 谷歌云翻译 api 库未构建 - 发现重复类

android - Holo 是否有主题,全屏但带有操作栏?

java - 在 Android 11 (API 30) 中以编程方式更改状态栏文本颜色

Android - 使 Activity 全屏并在其顶部显示状态栏