如何使状态栏在.NET MAUI Visual Studios 2022中完全透明

发布于 2025-02-01 12:03:18 字数 561 浏览 3 评论 0原文

因此,我能够发现您可以使用名称的代码使Android上的状态栏完全透明:

    var s = SystemUiFlags.LayoutFullscreen | SystemUiFlags.LayoutStable;
    FindViewById(Android.Resource.Id.Content).SystemUiVisibility = (StatusBarVisibility)s;
    Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
    WindowInsetsControllerCompat windowInsetsController = new WindowInsetsControllerCompat(Window, Window.DecorView);
    windowInsetsController.AppearanceLightStatusBars = true;

由于此代码被弃用,我如何实现最高状态栏完全透明的相同效果,就像与背景颜色相匹配的当时屏幕上有什么图片或颜色。我在vs 2022中使用.Net Maui。

So I was able to find that you can use depricated code to make the status bar on Android fully transparent:

    var s = SystemUiFlags.LayoutFullscreen | SystemUiFlags.LayoutStable;
    FindViewById(Android.Resource.Id.Content).SystemUiVisibility = (StatusBarVisibility)s;
    Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
    WindowInsetsControllerCompat windowInsetsController = new WindowInsetsControllerCompat(Window, Window.DecorView);
    windowInsetsController.AppearanceLightStatusBars = true;

Since this code is deprecated, how do I achieve the same effect of the top status bar being fully transparent, as matching the background color of whatever picture or color is on the screen at the time. I am using .NET MAUI in VS 2022.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江城子 2025-02-08 12:03:18

应该在页面上的代码:

protected override void OnAppearing()
{
    base.OnAppearing();
#if ANDROID
    MainActivity.SetStatusBarLight(false);
#endif
}

mainActivity.cs中的代码

    protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    Platform.Init(this, savedInstanceState);

    var s = SystemUiFlags.LayoutFullscreen | SystemUiFlags.LayoutStable;
#pragma warning disable CS0618 // Type or member is obsolete
    FindViewById(Android.Resource.Id.Content).SystemUiVisibility = 
    (StatusBarVisibility)s;
#pragma warning restore CS0618 // Type or member is obsolete
    Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
    WindowInsetsControllerCompat windowInsetsController = new 
    WindowInsetsControllerCompat(Window, Window.DecorView);
    windowInsetsController.AppearanceLightStatusBars = false;

    MainActivityInstance = this;
}

    public static void SetStatusBarLight(bool isLight)
{
    if (MainActivityInstance != null)
    {
        WindowInsetsControllerCompat windowInsetsController =
        new WindowInsetsControllerCompat(MainActivityInstance.Window, MainActivityInstance.Window.DecorView);
        windowInsetsController.AppearanceLightStatusBars = isLight;
    }
}

Code that should be on the page:

protected override void OnAppearing()
{
    base.OnAppearing();
#if ANDROID
    MainActivity.SetStatusBarLight(false);
#endif
}

Code in MainActivity.cs

    protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    Platform.Init(this, savedInstanceState);

    var s = SystemUiFlags.LayoutFullscreen | SystemUiFlags.LayoutStable;
#pragma warning disable CS0618 // Type or member is obsolete
    FindViewById(Android.Resource.Id.Content).SystemUiVisibility = 
    (StatusBarVisibility)s;
#pragma warning restore CS0618 // Type or member is obsolete
    Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
    WindowInsetsControllerCompat windowInsetsController = new 
    WindowInsetsControllerCompat(Window, Window.DecorView);
    windowInsetsController.AppearanceLightStatusBars = false;

    MainActivityInstance = this;
}

    public static void SetStatusBarLight(bool isLight)
{
    if (MainActivityInstance != null)
    {
        WindowInsetsControllerCompat windowInsetsController =
        new WindowInsetsControllerCompat(MainActivityInstance.Window, MainActivityInstance.Window.DecorView);
        windowInsetsController.AppearanceLightStatusBars = isLight;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文