Ant*_*noi 3 android splash-screen react-native android-12
我正在使用react-native-splash-screen库从 iOS 和 Android 上的图像在应用程序中制作自定义启动屏幕。
然而,谷歌在 Android 12 中引入了新的启动屏幕方法,这会导致启动屏幕重复、缺乏自定义以及需要迁移到删除旧屏幕的新实现等问题。
我喜欢我的旧启动画面,不想删除它,而且我看到 Instagram 应用程序(也在 React Native 上)似乎使用的不是 Android 12 原生启动画面,而是自定义启动画面,所以绝对应该是实现这一目标的一种方式。
那么,我怎样才能让我的自定义实现准确地保持不变,而不出现任何性能问题,并且能够像以前一样使用全屏图像呢?
Ant*_*noi 11
为 Android 12 配置我的旧实现并使其保持相同的行为确实非常容易:首先,app/build.gradle使用以下内容更改文件:
android {
compileSdkVersion 31
...
}
dependencies {
...
implementation 'androidx.core:core-splashscreen:1.0.0-beta01'
}
Run Code Online (Sandbox Code Playgroud)
然后,将此样式添加到您的样式中:
android {
compileSdkVersion 31
...
}
dependencies {
...
implementation 'androidx.core:core-splashscreen:1.0.0-beta01'
}
Run Code Online (Sandbox Code Playgroud)
更改AndroidManifest.xml主要活动的主题:
android:theme="@style/Theme.App.Starting"
Run Code Online (Sandbox Code Playgroud)
最后一步:在MainActivity.java更改中:
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
<item name="android:windowIsTranslucent">true</item>
<item name="postSplashScreenTheme">@style/AppTheme</item> // or other theme you want to use
</style>
Run Code Online (Sandbox Code Playgroud)
这将保留您的自定义启动屏幕实现,更重要的是,保留自定义设计能力。我在我的应用程序中做到了这一点,一切都很完美,我的应用程序立即打开并立即出现自定义图像启动。
PS 我认为 Instagram 使用了相同的 hack,因为 Instagram 应用程序(在 React Native 中并且可能使用这个库)在 Android 12 上以其自定义启动栏打开,而不是原生的。
| 归档时间: |
|
| 查看次数: |
6956 次 |
| 最近记录: |