Xamarin Shell窗口全屏但显示状态栏

2cmtqfgy  于 2022-12-07  发布在  Shell
关注(0)|答案(1)|浏览(147)

我如何用xamarin shell(安卓和ios)创建谷歌Map效果(全屏显示应用程序,但不隐藏状态栏)。

对于Android,我发现:
在OnCreate方法中

Window.SetFlags(WindowManagerFlags.LayoutNoLimits, WindowManagerFlags.LayoutNoLimits);
Window.ClearFlags(WindowManagerFlags.TranslucentStatus);            
Window.SetStatusBarColor(Android.Graphics.Color.Transparent);

但我仍然需要更改图标的颜色?
iOS还没有解决方案!

zphenhs4

zphenhs41#

适用于安卓系统:

1.更改style.xml
您可以将代码添加到Android styles.xml中。这可以使状态栏透明。

<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
     <item name="android:windowTranslucentStatus">true</item>
</style>

2.在MainActivity.cs中加入方法。

protected override void OnCreate(Bundle savedInstanceState)
   {
       TabLayoutResource = Resource.Layout.Tabbar;
       ToolbarResource = Resource.Layout.Toolbar;
       base.OnCreate(savedInstanceState);

       Xamarin.Essentials.Platform.Init(this, savedInstanceState);
       global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

       if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Kitkat)
       {
           
           Window.AddFlags(WindowManagerFlags.TranslucentStatus);
           
           Window.AddFlags(WindowManagerFlags.TranslucentNavigation);
       }

       LoadApplication(new App());

对于ios您可以参考此article

有关此问题的更多详细信息:
Xamarin Forms Android transparent status bar

相关问题