无法使用 QtAndroid::hideSplashScreen(); 隐藏 QtAndroid 启动画面;
Can't Hide a QtAndroid Splashscreen with QtAndroid::hideSplashScreen();
我目前正在为 android 开发 Qt C++/QML 应用程序,我遇到了一个问题。按照本指南中的步骤操作:HERE。
这会生成一个非常干净且功能齐全的 SplashScreen(我假设是原生的)。但是,它指示我在加载所有元素后使用 QtAndroid::hideSplashScreen();
隐藏启动画面。这种方法只会给我留下一个空白屏幕,如下所示:
没有显示关于 success/failure 到 display/hide 这个元素的错误消息。 "hiding"它之后,没有视图显示(我的视图此时应该显示。)
我隐藏闪屏的方法如下:
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!";
}
});
}
结果我确实看到 "Map Loaded!" 被调用了,但是什么也没有出现。
请记住,没有闪屏,主视图显示得非常好。
AppTheme.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>
Splash.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"/>
修复似乎是从 AppTheme.xml 中删除 <item name="android:windowBackground">@drawable/splash</item>
。
在 Qt 5.14.2 上测试/Android。
我目前正在为 android 开发 Qt C++/QML 应用程序,我遇到了一个问题。按照本指南中的步骤操作:HERE。
这会生成一个非常干净且功能齐全的 SplashScreen(我假设是原生的)。但是,它指示我在加载所有元素后使用 QtAndroid::hideSplashScreen();
隐藏启动画面。这种方法只会给我留下一个空白屏幕,如下所示:
没有显示关于 success/failure 到 display/hide 这个元素的错误消息。 "hiding"它之后,没有视图显示(我的视图此时应该显示。)
我隐藏闪屏的方法如下:
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!";
}
});
}
结果我确实看到 "Map Loaded!" 被调用了,但是什么也没有出现。
请记住,没有闪屏,主视图显示得非常好。
AppTheme.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>
Splash.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"/>
修复似乎是从 AppTheme.xml 中删除 <item name="android:windowBackground">@drawable/splash</item>
。
在 Qt 5.14.2 上测试/Android。