2010-08-01 5 views
7

J'essaie d'utiliser un WebView dans mon application Android. Je crée mon webview en code (pas en XML). Mon problème est; quand j'appelle la méthode loadUrl de webview, le webview passe en mode plein écran. Comment puis-je conserver la taille du webview par exemple 200x200 pixels?Comment définir WebView en tant que non-plein écran?

S'il y a une autre option au lieu de WebView, bien sûr les bienvenus :)

Merci,

+0

btw: mêmes questions semble être ici: http://stackoverflow.com/questions/3321958/how-use-a-webview-without-expand-and-without-interaction –

+3

@ mathias-lin: lien est mort –

Répondre

0

Voir ma réponse et les commentaires sur how to show a webview inside an activity in the middle of screen

Appliquer LayoutParams à votre WebView ou à la mise en page (c'est-à-dire LinearLayout) qui entoure le WebView, le cas échéant, à savoir setLayoutParams(LinearLayout.LayoutParams(200, 200));

+0

Merci pour votre réponse rapide. Mais, j'ai essayé ça. J'ai mis LayoutParams comme; RelativeLayout.LayoutParams params = nouveau RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.FILL_PARENT, 200); webView.setLayoutParams (params); Cela fonctionne si je n'appelle pas loadQML metdoh. Quand j'appelle la méthode, webView passe en plein écran. – Kaan

+0

C'est bizarre. Pouvez-vous poster votre code (modifier/ajouter à la question), en particulier lorsque vous faites tous les paramètres et l'initialisation de la WebView.Êtes-vous sûr que le webview que vous voyez est votre propre webview intégré à l'application et non le navigateur par défaut? –

14

Ce que vous voyez n'est peut-être pas votre activité, mais le navigateur application, car l'URL à laquelle vous avez accédé a fait une redirection. Utilisez WebViewClient et shouldOverrideUrlLoading() pour intercepter la redirection et renvoyez-la à la vôtre WebView.

+0

C'est très probablement le cas (et le remède) – Bostone

+0

http://www.giantflyingsaucer.com/blog/?p=1331 pour un exemple – max4ever

+0

+1 je cherchais :) – BBdev

5

@Mahtias Lin, s'il vous plaît voir mon code pour créer et utiliser WebView;

WebView webView = new WebView(this); 

RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, 416); 

WebSettings webSettings = webView.getSettings(); 
webSettings.setSavePassword(false); 
webSettings.setSaveFormData(false); 
webSettings.setJavaScriptEnabled(true); 

webView.setLayoutParams(p); 
webView.loadUrl("http://www.google.com/"); 

Le code ci-dessus n'est pas défini sur 416px.

@CommonsWare, j'ai essayé votre suggéré avec le code suivant et étonnamment cela fonctionne, merci.

webView.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
     view.loadUrl(url); 
     return false; 

    } 
}); 

Mais cette utilisation a apporté de nouveaux problèmes. Lorsque je redéfinis shouldOverrideURLLoading, le webview affiche sans barre d'adresse, pas de navigation (retour, avance etc ...)?

Et aussi, le webview accepte-t-il les entrées de l'utilisateur?

Ok, j'édite ma question :)

J'ai cherché et je trouve l'ensemble supplémentaire ci-dessous pour faire WebView pour pouvoir obtenir des entrées;

webView.requestFocus(View.FOCUS_DOWN); 

D'autre part, je pense que je vais créer mon propre dos, boutons avant et adresse bar pour ma WebView. Je vais également attacher "ce qui s'est passé" à ce fil lorsque je crée mes boutons et ma barre d'adresse.

Best,

4
WebView wb=new WebView(); 
wb.setInitialScale(60); 

ceci est utilisé pour la mise en jeu de l'émulateur. 60 signifie% valeur. nous pouvons utiliser 0% à 100%.

Questions connexes