使用AppCompat工具栏,我希望能够在ActionMode更改时更改溢出菜单图标的颜色.
例如,在正常工具栏模式下,溢出图标将为白色.并且会在ActionMode上变黑.到目前为止,我已经设法改变了动作模式的背景以及标题文本.但我还没有找到一种方法来改变溢出菜单图标的颜色.
我知道有一个答案: 更改ActionMode Overflow图标
我尝试了第一个解决方案,但我无法找到溢出图标.
第二种解决方案,即使延迟50L,也会导致溢出菜单图标闪烁ActionMode的预期颜色,短时间内非常刺耳.
我的目标是将操作栏设为红色,但由于默认 android 库中的唯一选项是白色和黑色,因此我尝试对其进行自定义。我通过在 gimp 上使用油漆桶制作了一些自定义的红色图标来填充白色图标并以不同的名称重新保存。我对溢出图标做了同样的事情,但由于某种原因,它渲染得比我不想要的其他图标大得多。
我正在使用android:minSdkVersion="15"和targetSdkVersion 21和支持库(特别是,android.support.v7)。我的活动扩展android.support.v7.app.ActionBarActivity并包含一个填充整个活动的片段。但是我的溢出图标比其他图标大,但我希望它们的大小相同:
我知道它选择了正确的图标,因为它们都是蓝色的。它必须以不同的方式调整大小,但我不知道为什么?其实,我有5个不同颜色放大的图标drawable-hdpi,drawable-mdpi,drawable-xhdpi,drawable-xxhdpi,和drawable-xxxhdpi,只是让我可以看到,如果问题是正在使用错误的图标。
当我使用@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse父主题附带的默认图标时,大小看起来都一样:
使用“更垂直”图标进行实验:
使用drawable-xxhdpi大小如下所示:
我drawable-mdpi通过放入drawable并强制使用它来测试一个较小的图标(大小)(即使我的 android 使用 drawable-xxhdpi 图标),但它最终还是被放大到了一个大尺寸:
这是我使用的自定义主题代码:
<style name="NGT48Theme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/NGT48ActionBar</item>
<item name="android:windowBackground">@color/white</item>
<item name="actionBarStyle">@style/NGT48ActionBar</item>
<item name="android:actionOverflowButtonStyle">@style/NGT48Theme.OverFlow</item>
<item name="actionOverflowButtonStyle">@style/NGT48Theme.OverFlow</item>
</style>
<!-- ~~~~~~~~~~~~~~~~~~~~ ActionBar styles ~~~~~~~~~~~~~~~~~~~~ -->
<style name="NGT48ActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/white</item>
<item name="background">@color/white</item>
<item name="android:titleTextStyle">@style/NGT48ActionBarTitleTextStyle</item>
<item name="titleTextStyle">@style/NGT48ActionBarTitleTextStyle</item>
</style>
<!-- ~~~~~~~~~~~~~~~~~~~ ActionBar Title …Run Code Online (Sandbox Code Playgroud) android android-icons android-actionbar android-resources android-styles