0

Je suis en train de mettre à jour mes applications Android pour prendre en charge le mode multi-fenêtres dans Android 7. Comme les applications gèrent déjà les changements de rotation dans onConfigurationChanged, je veux gérer les changements de taille de fenêtre façon. J'ai donc mis à jour AndroidManifest.xml pour inclure android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout" pour mes activités.onConfigurationChanged non appelé lorsque vous passez à 1/3 largeur d'écran

Cela fonctionne comme prévu lors du redimensionnement des fenêtres afin que mon application occupe 2/3 ou 1/2 de l'écran: onConfigurationChanged est appelée, et mon activité n'est pas redémarrée. Mais quand je redimensionne mon application vers ou à partir de la taille d'écran 1/3 (donc mon application ne prend que 1/3 de l'écran et une autre application prend les 2/3 restants), l'application se comporte comme si je n'avais pas ces configChanges values: onConfigurationChanged n'est pas appelé et mon activité est redémarrée.

J'ai vérifié les valeurs possibles pour configChanges, mais n'a rien vu d'autre de pertinent.

Y at-il une raison pour que cela fonctionne de cette façon, ou est-ce un bug Android? Je cours sous Android 7.1.2 sur une tablette Google Pixel C.

+0

"Mais quand je redimensionne mon application de ou au 1/3 de la taille de l'écran (donc mon application ne prend que 1/3 de l'écran et une autre application prend les 2/3 restants)" - par là, voulez-vous dire que vous étiez la moitié de l'écran, puis glissé le diviseur de sorte que votre activité était 1/3 de l'écran? – CommonsWare

+0

Oui. Ou quand j'ai glissé de 1/3 à 1/2 à nouveau. – arlomedia

Répondre

5

Par la Preparing for multi-window blog post, l'ensemble minimal de configChanges vous devez gérer plusieurs fenêtres est:

android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" 

Il vous manque smallestScreenSize, qui se produit lorsque la plus petite largeur de vos changements d'activité.

+0

Vous l'avez cloué! J'accepte en 10 minutes quand StackOverflow me le permet. :-) – arlomedia

+0

P.S. Je suis vraiment heureux d'obtenir une réponse directement d'un employé de Google à ce sujet. Bravo à Google pour faire ce genre de sensibilisation. – arlomedia

+0

@arlomedia - heureux d'aider! J'ai aussi déposé un bogue interne sur les docs pour l'ajouter à la [page de documentation multi-fenêtres] (https://developer.android.com/guide/topics/ui/multi-window.html). – ianhanniballake