android– 工具栏中的色调导航图标

android– 工具栏中的色调导航图标,第1张

概述如何着色菜单图标已经覆盖了几次,如下所示:ToolbaricontintingonAndroid除此解决方案外,还存在导航图标的问题.将主题(叠加)应用于工具栏只会对文本和白名单图标进行着色(请参阅:https://stackoverflow.com/a/26817918/2417724)如果您设置了一个自定义图标(在这种情况下非常简

如何着色菜单图标已经覆盖了几次,如下所示:
Toolbar icon tinting on Android

除此解决方案外,还存在导航图标的问题.
将主题(叠加)应用于工具栏只会对文本和白名单图标进行着色(请参阅:https://stackoverflow.com/a/26817918/2417724)

如果您设置了一个自定义图标(在这种情况下非常简单,如果您不想显示默认的后退箭头,则需要更改它),则此自定义图标不会着色.

那你如何处理你的图标?
我的所有图标都是默认黑色,我不想在工具栏中使用特殊的白色版本.

解决方法:

appcompat导航按钮 – 它只是一个AppCompatimagebutton – 可以通过toolbarNavigationbuttonStyle属性设置样式. AppCompat主题中的默认样式是Widget.AppCompat.Toolbar.button.Navigation,我们可以扩展该样式以添加tint属性值.例如:

<style name="Apptheme" parent="theme.AppCompat.light.NoActionbar">    ...    <item name="toolbarNavigationbuttonStyle">@style/Toolbar.button.Navigation.Tinted</item></style><style name="Toolbar.button.Navigation.Tinted" parent="Widget.AppCompat.Toolbar.button.Navigation">    <item name="tint">@color/nav_button_tint</item></style>

使用此方法时需要注意几点.

在支持库版本25.4.0之前,AppCompatimagebutton没有提供自己的tint属性,因此应用程序命名空间中的tint属性将不适用(除非在别处定义,否则将不存在).如果使用支持库版本25.3.0或更早版本,则必须使用平台androID:tint属性.

不幸的是,这导致另一个问题,因为Lollipop之前的平台色调(API级别21)只能处理简单的单色值,并且使用colorStateList(< selector>)资源值将导致抛出异常.如果androID:tint值是一个简单的颜色,这不会产生任何问题,但通常需要着色导航图标以匹配另一个主题颜色属性,这可能很好地是一个colorStateList.在这种情况下,有必要在res / values /和res / values-21 /中创建单独的样式,在res / values /中为androID:tint指定一个简单的颜色值.

例如,如果着色以匹配主题的主要文本颜色:

RES /值/ styles.xml

<item name="androID:tint">@color/normal_text_color</item>

RES /值-V21 / styles.xml

<item name="androID:tint">?androID:textcolorPrimary</item>

如果您使用的支持库版本低于25.4.0,则只需关注上述注释即可.

总结

以上是内存溢出为你收集整理的android – 工具栏中的色调导航图标全部内容,希望文章能够帮你解决android – 工具栏中的色调导航图标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存