Як увімкнути регулювання масштабування та прискорити масштабування у веб-перегляді?


131

Програма браузера за замовчуванням для Android показує елементи масштабування під час прокрутки, а також дозволяє прискорити масштабування. Як я можу включити цю функцію для власного веб-перегляду?

Я спробував:

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

але жодна з функцій не вмикається в результаті. До речі, я встановив "а" WebChromeClientі " WebViewClientдля" веб-перегляду, якщо це має значення.

Дякую!

Відповіді:


291

Дивно. Всередині методу OnCreate я використовую

webView.getSettings().setBuiltInZoomControls(true);

І тут добре працює. Щось конкретно у вашому веб-перегляді?


46
Незважаючи на те, що це дозволить збільшити масштаб, він також відобразить контроль накладення масштабу (Galaxy S3). Для того, щоб вимкнути екранний інструмент збільшення, але зберегти функцію "пришвидшити", потрібно також зателефонувати webView.setDisplayZoomControls (помилково).
Лев

49
^webView.getSettings().setDisplayZoomControls(false);
Мудрінді

Все це не працює для мене. Спробуйте, наприклад, цей веб-сайт: " nbc26.com/robocalls/… ". Це не дозволяє мені масштабувати. Це справді працює для вас? будь ласка, покажіть для цього весь код.
андроїд розробник

Якщо хтось дивиться на цю відповідь і цікавиться, звідки береться об’єкт веб-перегляду, ви можете отримати його за допомогою, WebView webView = (WebView) appView.getEngine().getView();як показано в цьому коментарі.
Ендрю Дант

Якщо ви використовуєте рендерінг веб-перегляду Xamarin.Android, це код, як показано нижче Control.Settings.BuiltInZoomControls = true; Control.Settings.SetSupportZoom (вірно); Control.Settings.DisplayZoomControls = false;
Аділ Сайяд


34

Перевірте, чи немає у вас ScrollView, який завершує ваш веб-перегляд .

У моєму випадку це була проблема. Здається, ScrollView перешкоджає прищикнутий жест.

Щоб виправити це, просто виведіть веб-перегляд за межами ScrollView .


6
ти врятував мій день
allemattio

Для мене чудово працює. Тепер я можу повністю видалити свій вкладений вид прокрутки!
Аві Паршан

це працює , коли ви можете додати андроїд: fillViewport = True <ScrollView андроїд: layout_width = "match_parent" андроїд: layout_height = "match_parent" андроїд: fillViewport = "істинний">
androidAhmed

4

Всередині OnCreate додайте:

 webview.getSettings().setSupportZoom(true);
 webview.getSettings().setBuiltInZoomControls(true);
 webview.getSettings().setDisplayZoomControls(false);

Всередині html-документа додайте:

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=yes">
</head>
</html>

Всередині javascript пропустіть:

//event.preventDefault ? event.preventDefault() : (event.returnValue = false);

Булевим значенням для setSupportZoom є типовим true, для цього webview.getSettings().setSupportZoom(true);за замовчуванням не потрібно .
زياد

хороша відповідь! Ви згадали проблеми, пов'язані з HTML, це ключове рішення моєї проблеми! спасибі !
Siwei Shen 申思维

4

Щоб увімкнути керування масштабуванням у веб-перегляді, додайте такий рядок:

webView.getSettings().setBuiltInZoomControls(true);

За допомогою цього рядка коду ви отримуєте увімкнено масштабування у своєму веб-перегляді, якщо ви хочете зняти передбачені кнопки збільшення та зменшення, додайте такий рядок коду:

webView.getSettings().setDisplayZoomControls(false);

2

Спробуйте цей код, я працюю нормально.

 webSettings.setSupportZoom(true);
 webSettings.setBuiltInZoomControls(true);
 webSettings.setDisplayZoomControls(false);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.