在接下来的一两个月内,应该可以通过MAUI 社区工具包StatusBarEffect
和NavigationBarEffect
在其中做到这一点。此处讨论- 针对 Xamarin 工具包。
这些效果目前xamarin.develop
在Xamarin.Community.Toolkit
. 更改也将合并到 Maui Toolkit,不确定具体时间。
下面是基于该源代码,适用于 MAUI。经测试。
安卓:
public class MainActivity : MauiAppCompatActivity
{
protected override void OnCreate(Android.OS.Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetColors();
}
private void SetColors()
{
if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop) {
// Aqua.
var color = Microsoft.Maui.Graphics.Color.FromRgb(0, 255, 255);
// The thin bar at top of Android screen.
Window.SetStatusBarColor(color.ToNative());
// The thicker bar at bottom of Android screen.
Window.SetNavigationBarColor(color.ToNative());
}
}
}
这会在应用程序启动时设置颜色。效果将包含动态设置这些颜色所需的额外逻辑。(在这些效果存在之前,您可以在持久存储中保存一个值,强制您的应用重新启动,读回该标志以了解要应用什么颜色。或者您可以在 Android 中创建一个依赖服务,从 X-Forms 代码中调用。将需要使用Device.BeginInvokeOnMainThread
。)
IOS:
...待定...
设置状态栏颜色可以在ShaXam/iOS/StatusBarStyleManager/中看到。
基本线是这些(我认为):
UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.DarkContent, false);
GetCurrentViewController().SetNeedsStatusBarAppearanceUpdate();
iOS - 未经测试。