0

我目前正在为 android 开发一个 Qt C++/QML 应用程序,我遇到了一个问题。按照本指南中的步骤操作:这里

这会产生一个非常干净且功能强大的 SplashScreen(我自己假设)。但是,它指示我QtAndroid::hideSplashScreen();在加载所有元素时使用隐藏启动画面。这种方法只会给我留下一个空白屏幕,如下所示:

在此处输入图像描述

在此处输入图像描述

没有显示有关显示/隐藏此元素的成功/失败的错误消息。“隐藏”它之后,没有视图显示(我的视图此时应该显示。)

我隐藏启动画面的方法如下:

using namespace Esri::ArcGISRuntime;

CanfieldFairApp::CanfieldFairApp(QObject* parent /* = nullptr */):
    QObject(parent),
    m_map(new Map(Basemap::streetsNightVector(this), this))
{
    connect(m_mapView, SIGNAL(navigatingChangedEvent()), this, SLOT(navigatingChangedEvent()));

    connect(m_map, &Esri::ArcGISRuntime::Map::loadStatusChanged, this, [](Esri::ArcGISRuntime::LoadStatus loadStatus)
    {
        if (loadStatus == LoadStatus::Loaded)
        {
            QtAndroid::hideSplashScreen();
            qDebug() << "Map Loaded!";
        }
    });
}

结果,我确实看到“地图已加载!” 调用,但没有出现。

请记住,如果没有启动画面,主视图会显示得非常好。

应用主题.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:statusBarColor">#ffffff</item>
    </style>
</resources>

飞溅.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#ffffff"/>
        </shape>
    </item>    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/app"/>
    </item>
</layer-list>

AndroidManifest.xml 部分:

<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="Canfield Fair App" android:icon="@drawable/icon">
        <activity android:theme="@style/AppTheme" android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="Canfield Fair App" android:screenOrientation="unspecified" android:launchMode="singleTop">

<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/>
<meta-data android:name="android.app.splash_screen_sticky" android:value="true"/>
4

1 回答 1

1

该修复似乎正在<item name="android:windowBackground">@drawable/splash</item>从 AppTheme.xml 中删除。

在 Qt 5.14.2 / Android 上测试。

于 2020-07-02T12:57:10.273 回答