Xamarin Forms中ToolbarItem仅在Android端不显示文本如何解决?
问题原因
这是Xamarin.Forms适配Android平台的默认行为差异+资源适配不到位共同导致的:
- Android原生Toolbar默认不会同时展示Primary层级ToolbarItem的图标和文字
- 图标模糊是因为仅使用了单尺寸16x的小图标,未适配Android多dpi的资源规范
修复步骤
1. 解决文字不显示问题,二选一即可:
方案1:全局修改Android端Toolbar样式
在Android项目的Resources/values/styles.xml中,找到你的应用主题对应的Toolbar样式,添加showTextWithIcon属性:
<style name="MyToolbarStyle" parent="Widget.AppCompat.Toolbar"> <item name="showTextWithIcon">true</item> </style>
随后在MainActivity的Toolbar配置中应用该样式即可。
方案2:仅针对当前ToolbarItem修改,无需全局改动
在XAML文件头部添加Android平台特定命名空间:
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
修改ToolbarItem的定义,添加平台附加属性:
<ToolbarItem IconImageSource="Question_16x.png" Text="Help" Clicked="OnHelpPressed" Order="Primary" Priority="0" android:ToolbarItem.ShowTextOnToolbar="Always"/>
2. 解决图标模糊问题
Android需要不同分辨率的图标适配不同密度的屏幕,你需要将对应尺寸的图标放到Android项目对应的资源目录下:
- drawable-mdpi:16x16px
- drawable-hdpi:24x24px
- drawable-xhdpi:32x32px
- drawable-xxhdpi:48x48px
- drawable-xxxhdpi:64x64px
所有图标命名保持一致为Question_16x.png即可,系统会自动根据设备分辨率选择对应尺寸的图标。
内容的提问来源于stack exchange,提问作者Charles
相关产品推荐
相关产品推荐

