.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
94 个问题
我使用vs2022 net maui8.0 程序。FlyoutIcon图标在windows正常显示,但是android显示为空白或者不显示, 为什么??代码如下:
Shell.FlyoutBehavior="Flyout"
FlyoutIcon="bb.png"
Title="mTest">
<ItemGroup>
<MauiImage Include="Resources\Images\bb.png" />
</ItemGroup>
你好,
出现这个现象的原因是Android默认有个白色的蒙板在FlyoutIcon 上面。
您可以在 yourproject/Platforms/Android
文件夹下创建一下ShellRenderer, 然后覆盖CreateToolbarAppearanceTracker 方法,然后创建一个类继承ShellToolbarAppearanceTracker,在SetColors 方法中设置 toolbarTracker.TintColor = Colors.Transparent;
.
namespace MauiApp9.Platforms.Android
{
public class CustomShellHandler : ShellRenderer
{
protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
{
return new CustomShellToolbarAppearanceTracker(this);
}
}
public class CustomShellToolbarAppearanceTracker : ShellToolbarAppearanceTracker
{
public CustomShellToolbarAppearanceTracker(IShellContext shellContext) : base(shellContext)
{
}
protected override void SetColors(AndroidX.AppCompat.Widget.Toolbar toolbar, IShellToolbarTracker toolbarTracker, Microsoft.Maui.Graphics.Color foreground, Microsoft.Maui.Graphics.Color background, Microsoft.Maui.Graphics.Color title)
{
toolbarTracker.TintColor = Colors.Transparent;
base.SetColors(toolbar, toolbarTracker, foreground, background, title);
}
}
最后别忘了在,MauiProgram.cs 中注册这个CustomShellHandler
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>().UseMauiCommunityToolkit()
.ConfigureMauiHandlers(handlers =>
{
#if ANDROID
handlers.AddHandler<Shell, MauiApp9.Platforms.Android.CustomShellHandler>();
#endif
})
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。