J'ai un écran de démarrage Android qui rend un dessinable. Lorsqu'il est ouvert via un démarrage à froid, je trouve que mon actif se déplace simplement vers le haut.
Vous pouvez trouver le code approprié ci-dessous, tout le code inutile a été omis.
Voici le léger changement:
SplashActivity.java
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
</style>
</resources>
3 Réponses :
J'ai trouvé la solution:
Vous devez supprimer ImageView car vous avez déjà défini splash via android: windowBackground .
Supprimez également android: background = "@ color / splash_background_color" de FrameLayout pour le rendre transparent
Btw, vous pouvez supprimer res / layout / launch_screen.xml si vous ne comptez pas dessiner des mises en page sur votre splash.
Pour Activité , n'appelez pas setContentView()
Pour Fragment , ne remplacez pas onCreateView()
C'est correct, Android n'a pas besoin de définir la mise en page pour eux.
La suppression de cette valeur signifie qu'elle ne sera pas rendue la première fois. Il montre un écran blanc puis le logo. Comme appose à montrer constamment le logo.
Dans ce cas, ImageView pourrait être supprimé. Le problème est que android: windowBackground et sont rendus de manière différente. On dirait que windowBackground a plus d'espace, donc le bitmap se déplace vers le haut
Si je suis correctement, la suppression de ImageView ne rend plus rien.
Oui, vous devez également supprimer android: background = "@ color / splash_background_color" de FrameLayout pour le rendre transparent
Merci beaucoup, si vous pouviez mettre à jour votre réponse avec les choses dans les commentaires, je voterai et accepterai. Juste une question, est-ce que launch_screen.xml est requis s'il ne rend qu'un FrameLayout transparent?
problème de périphériques sans frontières ?? J'ai changé style / Theme.Black.NoTitleBar en style / Theme.NoTitleBar.Fullscreen dans "android / app / src / main / res / values / styles.xml". github.com/apache/cordova-android/issues/844
Dans styles.xml , remplacez:
<item name="android:background">@drawable/background_splash</item>
par
<item name="android:windowBackground">@drawable/background_splash</item>
Notez la windowBackground -> background
Cela résout le problème pour moi.
Cela a fonctionné pour mon problème spécifique. Triste d'entendre que ce n'est pas pour le vôtre.
Bizarre mais j'ai rencontré le même problème pour mon écran de démarrage aussi. Il se déplaçait vers le haut après que certaines tâches aient été effectuées et lors de l'ouverture de l'activité principale.
Mais après avoir essayé plusieurs combinaisons - en gros, j'ai ajouté quelques lignes de code pour récupérer des données pendant que mon écran de démarrage est affiché et que j'avais ajouté un OnDestroy override pour annuler ma file d'attente de requêtes de volée.
@Override
protected void onDestroy() {
super.onDestroy();
if (queue!= null) {
queue.cancelAll(Constant.REQUEST_Q);
}
}
Une fois que j'ai supprimé le remplacement onDestroy ci-dessus, l'écran de démarrage a cessé de se déplacer ou de se déplacer vers le haut. Je ne peux pas expliquer pourquoi, en publiant cette réponse ici, c'était le premier message pendant que je cherchais ce problème.
C'est probablement parce que vous avez une barre d'état transparente. Essayez d'ajouter
android: fitsSystemWindows = "true"à votre racineFrameLayout@TarasParshenko merci pour la suggestion, malheureusement elle existe toujours avec
android:fitsSystemWindows="true">.hé, je suis coincé dans une erreur similaire, btw pouvez-vous me dire la ligne d'importation pour
AppCompatActivitydansSplashActivity.javaMoi aussi. Le pixel Android 3a est bon. mais le changement de Galaxy S10 !!!