Faites défiler webview horizontalement à l'intérieur d'un ViewPager
J'ai mis une WebView chargement d'une image à l'intérieur d'un ViewPager. Quand j'essaie de faire défiler l'image horizontalement-je passer à la vue suivante plutôt que de faire défiler l'image.
Est-il possible de faire défiler à la fin de l'image avant de passer à la vue suivante?
@Override
public Object instantiateItem(View view, int i) {
WebView webview = new WebView(view.getContext());
webview.setHorizontalScrollBarEnabled(true);
webview.loadUrl("http://www.site.with.an/image.gif");
((ViewPager) view).addView(webview, 0);
return webview;
}
Vous devez vous connecter pour publier un commentaire.
Ce qui suit est une véritable solution de travail qui permettra de faire défiler la
WebView
sur un glissement horizontal tant qu'il peut les faire défiler. Si leWebView
ne peut pas défiler, la prochaine glissement horizontal sera consommée par leViewPager
pour changer de page.L'extension de la
WebView
Avec l'API de Niveau 14 (ICS), la
View
méthodecanScrollHorizontally()
a été introduit, dont nous avons besoin pour résoudre le problème. Si vous développez uniquement pour ICS ou ci-dessus, vous pouvez directement utiliser cette méthode et passez à la section suivante. Sinon nous avons besoin pour mettre en œuvre cette méthode sur notre propre, pour que la solution fonctionne également sur pré-ICS.De le faire simplement provenir de votre propre classe de
WebView
:Important: n'oubliez pas de faire référence à votre
ExtendedWebView
à l'intérieur de votre fichier de mise en page au lieu de la normeWebView
.L'extension de la
ViewPager
Maintenant, vous avez besoin d'étendre la
ViewPager
à poignée horizontale glisse correctement. Ce qui doit être fait, en tout cas, peu importe si vous utilisez le partage de connexion internet ou pas:Important: n'oubliez pas de faire référence à votre
WebViewPager
à l'intérieur de votre fichier de mise en page au lieu de la normeViewPager
.Que c'est!
Mise à jour 2012/07/08: j'ai récemment remarqué que le produit indiqué ci-dessus ne semble plus nécessaire lors de l'utilisation "courante" de la mise en œuvre de la
ViewPager
. Le "courant" de la mise en œuvre semble vérifier les sous-vues correctement avant de capturer l'événement scroll (à voircanScroll
méthode deViewPager
ici). Ne sais pas exactement, lors de la mise en œuvre a été modifié pour gérer cela correctement -- j'ai encore besoin de le code ci-dessus sur Android Gingerbread (2.3.x) et avant de.Bien que Sven mentionnés pour le fichier de mise en page, je veux ajouter des détails. Après l'extension Webview et ViewPager classes,
À l'intérieur de votre activité vous sera de voter pour votre extension de la classe comme ceci:
À l'intérieur de votre fichier de mise en page comme ceci: