如何使用xamarin.forms shell中的状态栏?

如何使用xamarin.forms shell中的状态栏?,xamarin.forms,Xamarin.forms,我不想在android中使用全屏,因为会有一个bug 我知道如何在ios中实现它。请告诉我如何在android中实现它。我们可以使用消息中心来实现它 在第一页中.cs 在你的情况下,它应该是一个外壳 protected override void OnAppearing() { base.OnAppearing(); MessagingCenter.Send<Object>(this,"Hide"); } prot

我不想在android中使用全屏,因为会有一个bug


我知道如何在ios中实现它。请告诉我如何在android中实现它。

我们可以使用消息中心来实现它

在第一页中.cs 在你的情况下,它应该是一个外壳

protected override void OnAppearing()
{
   base.OnAppearing();

   MessagingCenter.Send<Object>(this,"Hide");
                
}

protected override void OnDisappearing()
{
   base.OnDisappearing();

    MessagingCenter.Send<Object>(this, "Show");
}
protected override void OnAppearing()
{
base.OnAppearing();
发送(这个“隐藏”);
}
受保护的覆盖无效OnDisappearing()
{
base.OnDisappearing();
发送(此“显示”);
}
在Android project->MainActivity中
protectedoverride void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource=Resource.Layout.Tabbar;
ToolbarResource=Resource.Layout.Toolbar;
订阅(此“隐藏”(arg)=>{
AddFlags(WindowManagerFlags.TranslucentStatus);
AddFlags(WindowManagerFlags.LayoutNoLimits);
});
MessagingCenter.Subscribe(此“显示”(arg)=>{
ClearFlags(WindowManagerFlags.TranslucentStatus);
Window.ClearFlags(WindowManagerFlags.LayoutNoLimits);
});
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(这个,savedInstanceState);
全局::Xamarin.Forms.Forms.Init(这个,savedInstanceState);
加载应用程序(新应用程序());
}

添加行
Window.AddFlags(WindowManagerFlags.TranslucentStatus);AddFlags(WindowManagerFlags.LayoutNoLimits)
before
base.OnCreate(savedInstanceState)在MainActivity中。它将使所有页面都像那个页面一样。我只想要第一页。可以在cs文件中设置吗?@LucasZhang MSFTHi,有任何更新吗?根据您的代码,无法点击选项卡栏菜单,请尝试。它将点击系统菜单。该菜单是在Shell中设计的。它将在正常的内容页面中工作。张“Shell中的设计”是什么意思?正如我所说的,我们可以设置Shell中的设计。您的要求只能在普通ContentPage中实现。
 protected override void OnCreate(Bundle savedInstanceState)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        MessagingCenter.Subscribe<Object>(this, "Hide", (arg) => {

            Window.AddFlags(WindowManagerFlags.TranslucentStatus);
            Window.AddFlags(WindowManagerFlags.LayoutNoLimits);

        });

        MessagingCenter.Subscribe<Object>(this, "Show", (arg) => {

            Window.ClearFlags(WindowManagerFlags.TranslucentStatus);
            Window.ClearFlags(WindowManagerFlags.LayoutNoLimits);

        });

      


        base.OnCreate(savedInstanceState);

        Xamarin.Essentials.Platform.Init(this, savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        LoadApplication(new App());
    }