2012-01-16 1 views
0

Voici ce que je souhaite faire. Je souhaite que plusieurs pages Web soient chargées sur leur propre page. Ces vues Web sont créées dans différentes activités qui résultent d'un clic sur une liste.commutation entre l'activité de webview sans recharger la page

Parfois, je souhaite passer d'une activité de visualisation Web à une autre. Ce que j'ai essayé montre que la commutation entre ces activités est toujours appelée méthode onCreate() qui appelle webView.loadUrl(). Par conséquent, la page Web est rechargée chaque fois que je change.

Quelqu'un a l'idée de concevoir de telles activités de navigation? La clé est comment basculer vers une activité existante sans recharger le webView à l'intérieur. Merci pour les avances

Répondre

0

Si vous créez une activité pour chaque WebView, il n'y a aucune possibilité de faire ce que vous décrivez. Cela se produit puisque vous fermez chaque activité et donnez un "OK" au GC pour le collecter et lancer toutes les données WebView.

  1. Ce que vous devez faire est de créer une sorte d'un conteneur Web qui contiendra une quantité prédéfinie de WebViews (ne garde pas plus de ~ 6 en vie, il va manger la mémoire de votre appareil).
  2. Chaque fois que vous appuyez sur votre élément de liste, commencez à charger un WebView dans votre conteneur et à le rendre visible par-dessus votre mise en page actuelle.
  3. Lorsque vous appuyez sur précédent, réglez simplement la visibilité du conteneur Web sur GONE.
  4. Si vous essayez d'ouvrir une 7ème WebView, tuez simplement la première et continuez.
  5. Cette méthode vous assure que vous avez WebViews en direct qui ne ont pas besoin de charger à nouveau ...

Hope this helps.

+0

hmm .. raisonnable. Merci –

0

Vous pouvez le faire avec un ViewAnimator. Créez vos WebViews et les ajouter à la ViewAnimator avec (quelque chose comme)

mViewAnimator.addView(mWebView0, index_0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,         ViewGroup.LayoutParams.FILL_PARENT)); 

puis passer à un WebView particulier par l'indice (quelque chose comme)

mViewAnimator.setDisplayedChild(index_0); 
Questions connexes