Xamarin C# Android 将Tabbed工具栏移至底部后图标消失如何解决
问题根因
Android平台原生底部导航栏默认会对图标应用统一色调过滤,Xamarin.Forms调用原生控件时继承了这个特性,未手动指定选中/未选中颜色时,系统默认着色会覆盖图标原有样式,导致显示为空白。
修复方案
- 直接在现有TabbedPage的安卓平台特性声明中补充选中、未选中状态的颜色配置即可,完整的头部声明参考如下:
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core" android:TabbedPage.ToolbarPlacement="Bottom" android:TabbedPage.BarItemColor="#888888" android:TabbedPage.BarSelectedItemColor="#1677ff"
其中BarItemColor对应未选中标签的图标、文字颜色,BarSelectedItemColor对应选中状态的颜色,可根据你的设计需求自行修改色值。
- 检查图标资源合规性:所有Tab图标优先存放在Android项目的
Resources/drawable目录下,文件名仅允许包含小写字母、数字和下划线,不能出现大写字母、中文或特殊符号。如果使用矢量图标,需确保安卓项目已开启矢量图兼容支持。 - 版本适配:如果配置后仍然显示空白,检查项目引用的Xamarin.Forms NuGet包版本,低于4.8的版本存在底部Tab图标渲染bug,升级到最新稳定版即可解决。
- 若需要完全保留图标原有颜色,不使用系统统一着色,可在Android项目的
Resources/values/styles.xml的主应用主题节点中添加以下配置:
<item name="tabIconTint">@null</item>
内容的提问来源于stack exchange,提问作者Jensar Joey Sayson
相关产品推荐
相关产品推荐

