【问题标题】:Uno Platform Android Splash screen does fully go awayUno Platform Android 启动画面确实完全消失了
【发布时间】:2020-07-23 09:53:17
【问题描述】:

我有一个使用 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 上进行测试。

【问题讨论】:

    标签: c# android splash-screen uno-platform


    【解决方案1】:

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

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

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

    在这种情况下,根 Grid 将完全掩盖原生 windowBackground。

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

    【讨论】:

    • 非常感谢您的出色解释。如您所述,设置背景属性是解决方法。我非常感谢您的帮助和指导。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多