2010-08-01 23 views
7

Estoy tratando de usar un WebView en mi aplicación Android. Estoy creando mi vista web en el lado del código (no en XML). Mi problema es; cuando llamo al método loadUrl de webview, la vista web va al modo de pantalla completa. ¿Cómo puedo mantener el tamaño de la vista web, por ejemplo, 200x200 píxeles?¿Cómo configurar WebView como no pantalla completa?

Si hay alguna otra opción en lugar de vistas web, por supuesto bienvenidos :)

Gracias,

+0

por cierto: las mismas preguntas parecen estar aquí: http://stackoverflow.com/questions/3321958/how-use-a-webview-without-expand-and-without-interaction –

+3

@ mathias-lin: link is dead –

Respuesta

0

Véase mi respuesta y los comentarios sobre how to show a webview inside an activity in the middle of screen

Aplicar LayoutParams a su vista Web o para el diseño (es decir, LinearLayout) que rodea al WebView, si lo hay, es decir, setLayoutParams(LinearLayout.LayoutParams(200, 200));

+0

Gracias por su respuesta rápida. Pero, lo intenté. Configuro LayoutParams como; RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.FILL_PARENT, 200); webView.setLayoutParams (params); Esto funciona si no llamo loadURL metdoh. Cuando llamo al método, webView va a pantalla completa. – Kaan

+0

Eso es raro. ¿Puedes publicar tu código (editar/agregar a la pregunta), especialmente donde realizas todas las configuraciones y la inicialización de WebView?¿Estás seguro de que la vista web que estás viendo es tu propia vista web integrada en la aplicación y no el navegador predeterminado? –

14

Es muy posible que lo que esté viendo no sea su actividad, sino el navegador aplicación, porque la URL a la que se conectó hizo un redireccionamiento. Use WebViewClient y shouldOverrideUrlLoading() para capturar la redirección y enviarla de regreso a su propio WebView.

+0

Es muy probable que sea el caso (y el recurso) – Bostone

+0

http://www.giantflyingsaucer.com/blog/?p=1331 para un ejemplo – max4ever

+0

+1 estaba buscando esto :) – BBdev

5

@Mahtias Lin, consulte mi código para crear y usar 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/"); 

El código anterior no establece mi vista web en 416px de alto.

@CommonsWare, probé su sugerencia con el siguiente código y sorprendentemente funciona, gracias.

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

    } 
}); 

Pero este uso trajo algunos problemas nuevos. Cuando anulo shouldOverrideURLLoading, la vista web se muestra sin barra de direcciones, sin navegación (atrás, adelante, etc.)?

Y también, la doenst webview acepta las entradas del usuario?

Ok, estoy editando mi pregunta :)

Busqué y encontré el siguiente conjunto adicional para hacer vistaweb a poder conseguir los insumos;

webView.requestFocus(View.FOCUS_DOWN); 

Por otro lado, supongo que voy a crear mi propia atrás, adelante botones y dirección de la barra de mi vista web. También adjuntaré "lo que sucedió" a este hilo cuando creé mis botones y la barra de direcciones.

mejor,

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

esto se utiliza para el diseño conjunto del emulador. 60 significa% de valor. podemos usar 0% a 100%.