2

我有一个使用 UNO 平台的项目。iOS 版本的启动画面完美运行。android 版本显示出来,似乎消失了。

但是,除非我在页面上有边框或 web 视图,否则它仍会显示在页面元素后面的背景中。

我实现了启动画面,执行以下操作:

样式.xml

<!-- Splash screen -->
<item name="android:windowBackground">@drawable/splash</item>

资源/drawble 中的 Splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
    <!-- background color -->
    <color android:color="#dedcdc"/>
  </item>
  <item>
    <!-- splash image -->
    <bitmap
        android:src="@drawable/splashscreen"
        android:tileMode="disabled"
        android:gravity="center" />
  </item>
</layer-list>

然后我将图像放入 Splashscreen.scale-200.png。一旦应用程序加载,启动画面确实会出现然后消失,所以我真的很困惑为什么它永远不会完全消失。

我注意到导航菜单和按钮等任何元素都会出现在启动画面上并隐藏其中的一部分。我正在使用最新的 Uno,今天更新了预发布版。我正在模拟器和 Pixel 3a 上进行测试。

4

1 回答 1

2

这是在 Android 上显示启动画面的标准方式,因为它几乎可以立即加载,确保您的用户不会盯着空白屏幕 - 换句话说,启动屏幕应该做什么。

但是请注意,您实际上是在设置windowBackground属性,因此预计初始屏幕不会“消失” - 它总是会出现在您的其余内容之后。通常它不会被随后看到,因为它被内容所覆盖。为了确保这种情况,你的 UI 的根通常有一个占据整个屏幕的不透明背景。例如,对于来自默认 Uno 模板的“Hello World”应用程序:

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <TextBlock Text="Hello, world!" Margin="20" FontSize="30" />
    </Grid>

在这种情况下,rootGrid将完全掩盖 native windowBackground

如果您在内容加载后仍看到启动画面,这意味着它具有非透明背景或不占据整个屏幕。尝试Background在您的 UI 中设置根视图的属性,如上所述。

于 2020-04-13T13:24:41.767 回答