2010-08-01 5 views
7

Я пытаюсь использовать WebView в своем приложении для Android. Я создаю свой веб-просмотр в кодовой части (а не в XML). Моя проблема; когда я вызываю метод loadUrl для веб-просмотра, веб-просмотр переходит в полноэкранный режим. Как сохранить размер веб-представления, например, 200x200 пикселей?Как установить WebView как не полный экран?

Если есть другой вариант вместо WebView, конечно, приветствуется :)

Спасибо,

+0

кстати: такие же вопросы, как представляется, находятся здесь: http://stackoverflow.com/questions/3321958/how-use-a-webview-without-expand-and-without-interaction –

+3

@ mathias-lin: ссылка мертва –

ответ

0

Смотрите мой ответ и комментарии по how to show a webview inside an activity in the middle of screen

Применить LayoutParams к вашей WebView или макету (т.е. LinearLayout), который окружает WebView, если таковой имеется, то есть setLayoutParams(LinearLayout.LayoutParams(200, 200));

+0

Благодарим за быстрый ответ. Но я это пробовал. Я установил LayoutParams как; RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.FILL_PARENT, 200); webView.setLayoutParams (params); Это работает, если я не вызываю loadURL metdoh. Когда я вызываю метод, webView переходит в полноэкранный режим. – Kaan

+0

Это странно. Можете ли вы опубликовать свой код (отредактировать/добавить к вопросу), особенно если вы выполните все настройки и инициализацию WebView.Вы уверены, что веб-просмотр, который вы видите, - это ваш собственный веб-просмотр в приложении, а не браузер по умолчанию? –

14

Возможно, что вы видите, это не ваша деятельность, а браузер приложение, потому что URL-адрес, с которым вы связались, перенаправил. Используйте WebViewClient и shouldOverrideUrlLoading(), чтобы поймать перенаправление и отправить его обратно на свой собственный WebView.

+0

Скорее всего, это случай (и средство) – Bostone

+0

http://www.giantflyingsaucer.com/blog/?p=1331 для примера – max4ever

+0

+1 Я искал это :) – BBdev

5

@Mahtias Lin, см. Мой код для создания и использования 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/"); 

Выше код не установлен для просмотра моего веб-представления 416px height.

@CommonsWare, я попробовал ваш предлагаемый следующий код и, как ни удивительно, он работает, спасибо.

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

    } 
}); 

Но это использование принесло некоторые новые проблемы. Когда я переопределяю shouldOverrideURLLoading, веб-просмотр отображается без адреса, без навигации (назад, вперед и т. Д.)?

А также, веб-просмотр doenst принимает пользовательские входы?

Хорошо, я редактирую мой вопрос :)

я искал, и я нашел следующий дополнительный набор, чтобы сделать WebView, чтобы иметь возможность получить входы;

webView.requestFocus(View.FOCUS_DOWN); 

С другой стороны, я думаю, я создам свою собственную спину, вперед кнопку и адрес-бар для моей WebView. Я также приложу «что случилось» с этим потоком, когда создаю свои кнопки и адресную строку.

Бест,

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

это используется для набора компоновки эмулятора. 60 означает значение%. мы можем использовать от 0% до 100%.

Смежные вопросы