Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set WebView as non-fullscreen?

I am trying to use a WebView in my Android application. I am creating my webview in code-side (not in XML). My problem is; when I call loadUrl method of webview, the webview goes fullscreen mode. How can I keep the size of the webview for example 200x200 pixels?

If there is any other option instead of webview, of course welcome :)

Thanks,

like image 567
Kaan Avatar asked Aug 01 '10 13:08

Kaan


3 Answers

Quite possibly what you are seeing is not your activity, but the Browser application, because the URL you linked to did a redirect. Use WebViewClient and shouldOverrideUrlLoading() to catch the redirect and send it back to your own WebView.

like image 167
CommonsWare Avatar answered Nov 20 '22 08:11

CommonsWare


@Mahtias Lin, please see my code to create and use 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/");

Above code is not set my webview to 416px height.

@CommonsWare, I tried your suggested with following code and amazingly it works, thanks.

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

    }  
 });  

But this usage brought some new problems. When I override shouldOverrideURLLoading, the webview displays with no-addressbar, no-navigation (back, forward etc...)?

And also, the webview doenst accept user inputs?

Ok, I am editing my question :)

I searched and I found the following additional set to make webview to able to get inputs;

webView.requestFocus(View.FOCUS_DOWN);

On the other hand, I guess I will create my own back, forward buttons and address-bar for my webview. I will also attach "what happened" to this thread when I create my buttons and address-bar.

Best,

like image 5
Kaan Avatar answered Nov 20 '22 10:11

Kaan


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

this is used for set layout of the emulator. 60 means % value. we can use 0% to 100%.

like image 4
gopal Avatar answered Nov 20 '22 08:11

gopal