AppCompat工具栏:在ActionMode中更改溢出图标颜色

使用AppCompat工具栏,我希望能够在ActionMode更改时更改溢出菜单图标的颜色。

例如,在正常工具栏模式下,溢出图标将为白色。 并且会在ActionMode上变黑。 到目前为止,我已经设法改变了动作模式的背景以及标题文本。 但我还没有find一种方法来改变溢出菜单图标的颜色。

我知道有一个答案: 更改ActionMode Overflow图标

我尝试了第一个解决方案,但我无法find溢出图标。

第二种解决方案,即使延迟50L,也会导致溢出菜单图标闪烁ActionMode的预期颜色,短时间内非常刺耳。

将以下行添加到您的主题属性中:

@android:color/white 

这可以通过设置android:textColorSecondary主题属性来实现。

例如,假设您有以下工具栏,它使用主题MyToolbarStyle

  

接下来,定义inheritance自ThemeOverlay.AppCompat.ActionBar的样式ThemeOverlay.AppCompat.ActionBar 。 最后,通过添加android:textColorSecondary项来修改溢出图标的颜色:

  
   

要正确更改工具栏溢出菜单图标的颜色,请将工具栏的主题设置为AppCompat dark ActionBar主题。 例如:

在res / values / style.xml文件中,创建一个以这种方式从AppCompatinheritance的主题:

  

现在将工具栏的主题设置为此主题:

   

在res-> styles.xml上添加此代码

  

然后你的XCML文件中的’ToolbarColored’样式就像belove

  
   

首先制作自定义样式

   

然后将其添加到工具栏中

   

如果您在活动xml中使用工具栏,则可以使用类似这样的内容

 toolbar?.navigationIcon?.setColorFilter(ContextCompat.getColor(this, android.R.color.black), PorterDuff.Mode.SRC_ATOP)