当 Android 12 及更高版本时,启动画面在 .net maui 中不显示全屏

问题描述 投票:0回答:1

enter image description here当 Android 12 及更高版本时,启动屏幕在 .NET Maui 中不显示全屏。启动画面像往常一样包含一个徽标和底部的几行文字。问题是图像和文本看起来非常小,并且与其他版本相比无法全屏显示。它使用以下版本显示全屏,例如 Android 9。我尝试过将启动屏幕作为内容页面,但是与以前的版本相比,它的性能有所延迟。所以请帮助解决问题。附上示例截图

c# android xaml maui
1个回答
0
投票

从文档向 .NET MAUI 应用程序项目添加启动屏幕,我们知道

在 Android 12+ (API 31+) 上,启动画面显示一个图标,该图标是 位于屏幕中央。

在启动画面中无法使图像全屏显示。只能自定义:图标、窗口背景、退出动画。请检查文档:developer.android.com 上的启动画面

不过,有一个解决方法可以让闪屏变成透明,然后你可以用ContentPage创建一个splashScreen,在ContentPage中添加图片。

步骤1。在

styles.xml
文件夹下创建
Platforms/Android/Resources/values
,添加以下代码自定义样式。并确保
build action
styles.xml
AndroidResource

<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MyTheme.Splash" parent ="MainTheme">
<item name="android:windowIsTranslucent">true</item>                  
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowSplashScreenAnimatedIcon">@android:color/transparent</item>
<item name="android:windowSplashScreenAnimationDuration">0</item>
</style>
</resources>

步骤2。打开

MainActivity.cs
,将主题更改为
Theme = "@style/MyTheme.Splash"

[Activity(Theme = "@style/MyTheme.Splash", ...)]
public class MainActivity : MauiAppCompatActivity
{
}

步骤3。请创建一个名为

SplashScreen
的内容页面并将您的图像添加到其中。几秒钟后按
Task.Delay()
Application.Current.MainPage = new MainPage ();
打开主页。 就像下面的代码一样。

protected override async void OnAppearing()
{
    base.OnAppearing();
 
   await Task.Delay(1000).ContinueWith(t => {
       MainThread.InvokeOnMainThreadAsync(() => {
           Application.Current.MainPage = new MainPage ();
       });
    }); 
}

步骤4。打开

App.xaml.cs
,将 MainPage 更改为 SplashScreen。

  public partial class App : Application
  {
      public App()
      {
          InitializeComponent();
 
          MainPage = new SplashScreen();
      }
  }
© www.soinside.com 2019 - 2024. All rights reserved.