gpt4 book ai didi

android - 从 Android 12 中删除默认启动画面(示例)

转载 作者:行者123 更新时间:2023-12-04 23:55:59 28 4
gpt4 key购买 nike

Android SDK 的最新 Beta 版展示了在 Android 12(模拟器)上运行的每个应用程序的默认启动画面,根据要求,我们已经拥有了自己的启动画面。

如果有人处理过它,请告诉我如何禁用/删除它(最好有示例代码)。

最佳答案

没有直接的 API 来禁用默认启动画面,但我们可以通过一些解决方法来解决这个问题。

方法一:

添加<item name="android:windowIsTranslucent">true</item>适合你的风格

<style name="Theme.RemoveSplashScreenTheme" parent="@style/BaseTheme">
<item name="android:windowIsTranslucent">true</item>
</style>

将此应用到启动画面 Activity。

<activity
android:name="com.test.SplashScreenActivity"
android:launchMode="singleInstance"
android:theme="@style/Theme.RemoveSplashScreenTheme"
android:noHistory="true" />

这将用透明屏幕替换默认的初始屏幕。如果应用已有 2 个启动画面问题,则此解决方法将消除 2 个启动画面问题。

但这会使系统启动画面不可见,并且看起来应用程序没有响应。如果有人遇到此问题,请遵循下一个解决方法。

方法 2:

因此,我们可以通过暂停应用程序来绘制现有启动画面并显示系统启动画面直到应用程序准备就绪来解决此问题。

private void setupOnPreDrawListenerToRootView() {
View mViewContent = findViewById(android.R.id.content);
mViewContent.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
Log.v("onPreDraw","onPreDraw called");
if (isAppInitialized) {
mViewContent.getViewTreeObserver().removeOnPreDrawListener(this);
startActivity(new Intent(this, MainActivity.class));

return true;
} else {
// The content is not ready; suspend.
return false;
}
}
});
}

一旦应用程序准备就绪,我们需要将 isAppInitialized 更新为 true 然后我们可以删除监听器并启动 MainActivity 直到它将保持。应用程序绘制现有的启动画面并执行所有应用程序初始化。

关于android - 从 Android 12 中删除默认启动画面(示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68110639/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com