android .NET MAUI透明状态栏

pbwdgjma  于 2023-01-11  发布在  Android
关注(0)|答案(2)|浏览(344)

如何在Android上使用.NET MAUI使状态栏透明并显示其背后的内容?
我见过这个post,有没有办法用C#重新创建它?
类似于谷歌Map:

bq3bfh9z

bq3bfh9z1#

MauiProgram.cs中尝试此操作

.ConfigureLifecycleEvents(events =>
            {
#if ANDROID
                events.AddAndroid(android => android.OnCreate((activity, bundle) => MakeStatusBarTranslucent(activity)));

                static void MakeStatusBarTranslucent(Android.App.Activity activity)
                {
                    activity.Window.SetFlags(Android.Views.WindowManagerFlags.LayoutNoLimits, Android.Views.WindowManagerFlags.LayoutNoLimits);

                    activity.Window.ClearFlags(Android.Views.WindowManagerFlags.TranslucentStatus);

                    activity.Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
                }
#endif
            });

aydmsdu9

aydmsdu92#

安装CommunityToolkit.Maui的1.3.0+版本,Gerald在YT:上也有关于它的视频
然后在ContentPage中执行以下操作:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:mct="clr-namespace:CommunityToolkit.Maui.Behaviors;assembly=CommunityToolkit.Maui"
             x:Class="MauiToolkitStatusBarBehaviorSample.MainPage">

<Page.Behaviors>
    <mct:StatusBarBehavior StatusBarColor="Transparent" StatusBarStyle="LightContent" />
</Page.Behaviors>

对于其他页面,您可能需要重新设置它,因为这种行为在某种程度上是全局性的,可能会影响其他页面。

相关问题