2010-08-01 11 views
7

Sto cercando di utilizzare una visualizzazione Web nella mia applicazione Android. Sto creando la mia webview in code-side (non in XML). Il mio problema è; quando chiamo metodo loadUrl di webview, la webview diventa modalità a schermo intero. Come posso mantenere la dimensione della webview ad esempio 200x200 pixel?Come impostare WebView come non a schermo intero?

Se c'è qualche altra opzione invece di visualizzazione web, ovviamente benvenuto :)

Grazie,

+0

btw: le stesse domande sembrano essere qui: http://stackoverflow.com/questions/3321958/how-use-a-webview-without-expand-and-without-interaction –

+3

@ mathias-lin: link is dead –

risposta

0

Vedere la mia risposta e commenti su how to show a webview inside an activity in the middle of screen

Applicare LayoutParams al WebView o al layout (es. LinearLayout) che circonda la WebView, se presente, cioè setLayoutParams(LinearLayout.LayoutParams(200, 200));

+0

Grazie per la tua rapida risposta. Ma ci ho provato. Ho impostato LayoutParams come; RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.FILL_PARENT, 200); webView.setLayoutParams (params); Questo funziona se non chiamo metdoh loadURL. Quando chiamo il metodo, webView diventa a schermo intero. – Kaan

+0

È strano. Puoi pubblicare il tuo codice (modifica/aggiungi alla domanda), specialmente dove fai tutte le impostazioni e l'inizializzazione di WebView.Sei sicuro che la tua webview sia la tua webview in-app e non il browser predefinito? –

14

Molto probabilmente quello che stai vedendo non è la tua attività, ma il Browser applicazione, perché l'URL a cui ti sei collegato ha effettuato un reindirizzamento. Utilizzare WebViewClient e shouldOverrideUrlLoading() per prendere il reindirizzamento e inviarlo di nuovo al proprio WebView.

+0

Probabilmente è il caso (e il rimedio) – Bostone

+0

http://www.giantflyingsaucer.com/blog/?p=1331 per un esempio – max4ever

+0

+1 stavo cercando questo :) – BBdev

5

@Mahtias Lin, consultare il mio codice per creare e utilizzare 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/"); 

Sopra il codice non è impostata la mia webview a 416px altezza.

@CommonsWare, ho provato il tuo suggerito con il seguente codice e funziona incredibilmente, grazie.

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

    } 
}); 

Ma questo utilizzo ha portato alcuni nuovi problemi. Quando eseguo l'override di shouldOverrideURLLadadd, la visualizzazione Web viene visualizzata con no-addressbar, no-navigation (back, forward ecc ...)?

E inoltre, la webview non accetta input utente?

Ok, io sono l'editing mia domanda :)

ho cercato e ho trovato il seguente set supplementare per rendere WebView per grado di ottenere ingressi;

webView.requestFocus(View.FOCUS_DOWN); 

D'altra parte, credo creerò la mia schiena, pulsanti avanti e l'indirizzo-bar per il mio WebView. Allegherò anche "cosa è successo" a questo thread quando creo i miei pulsanti e la barra degli indirizzi.

migliore,

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

questo è usato per il layout insieme di dell'emulatore. 60 significa% valore. possiamo usare dallo 0% al 100%.

Problemi correlati