Comment empêcher l'actualisation automatique de WebView lors de la rotation de l'écran

Mon application-activité avec WebView était l'actualisation automatique lors de la rotation de l'écran et mon activité à la première 1.

Exemple: WebView gère l'activité 3(A, B, C) lorsque je passe de A- > B ou B-C, il reviendra à A Lorsque l'écran tourne.

Ma question: Comment Pouvons-nous garder l'activité vivante rotation de l'écran des événements?

24
demandé sur Buddy 2012-06-07 04:48:26

3 réponses

En mettant en évidence le commentaire @ kirgy, vous devez ajouter orientation|screenSize à votre manifeste si votre API > 3.2, cela ne fonctionnera pas sans cela dans certains cas.

10
répondu MSaudi 2014-02-16 12:57:40

Il y a plus d'une approche pour s'attaquer à ce problème.

Le chemin Le plus facile est d'ajouter android:configChanges="orientation|screenSize" à la Activity dans votre manifeste. En définissant ce drapeau, vous dites à Android de ne pas détruire le Activity et que vous allez gérer vous-même tous les changements d'orientation (le cas échéant).

L'approche la plus moderne serait de placer le WebView dans un Fragment et de le faire conserver son instance, en utilisant le drapeau setRetainInstance(true). L'hébergement Activity sera toujours détruit lors de l'orientation change, mais le Fragment contenant le {[3] } sera simplement détaché et re-attaché, sans avoir besoin de se recréer. Vous pouvez trouver un exemple de cette fonctionnalité dans les démos de L'API. Gardez à l'esprit que la bibliothèque de support offre une implémentation de fragments compatible pré-Honeycomb, alors ne vous laissez pas berner par le niveau API de la classe 'regular' Fragment.

48
répondu MH. 2012-08-20 12:10:21

Ajoutez android:configChanges="orientation" à votre fichier manifeste pour empêcher les redémarrages lorsque l'orientation de l'écran change.

Comme::

   <activity android:name=".MyActivity"     
    android:configChanges="orientation|screenSize"  
    android:label="@string/app_name">

Voir ce pour certaines références.

5
répondu Eight 2018-05-24 15:13:19