Bir Web Görünümü'nde yakınlaştırma kontrolleri ve çimdik yakınlaştırma nasıl etkinleştirilir?


131

Android için varsayılan Tarayıcı uygulaması, kaydırırken yakınlaştırma kontrollerini gösterir ve ayrıca sıkıştırarak yakınlaştırmaya da olanak tanır. Bu özelliği kendi Web görünümüm için nasıl etkinleştirebilirim?

Denedim:

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

ancak sonuç olarak özelliklerin hiçbiri etkinleştirilmez. Btw Eğer bir fark yaratıyorsa, Webview için a WebChromeClientve a ayarladım WebViewClient.

Teşekkürler!

Yanıtlar:


291

Garip. OnCreate yönteminin içinde kullanıyorum

webView.getSettings().setBuiltInZoomControls(true);

Ve burada iyi çalışıyor. Web görünümünüzde belirli bir şey var mı?


46
Bu, sıkıştırarak yakınlaştırmaya izin verirken, aynı zamanda bir yakınlaştırma katmanı kontrolü (Galaxy S3) de görüntüler. Ekrandaki yakınlaştırma aracını devre dışı bırakmak, ancak yakınlaştırmak için sıkıştır işlevini korumak için, webView.setDisplayZoomControls (false) öğesini de çağırmanız gerekir.
Lev

49
^webView.getSettings().setDisplayZoomControls(false);
wiseindy

Bunların hepsi benim için çalışmıyor. Örneğin bu web sitesini deneyin: " nbc26.com/robocalls/… ". Yakınlaştırmama izin vermiyor. Gerçekten senin için çalışıyor mu? lütfen bunun için tüm kodu gösterin.
android geliştiricisi

Bu yanıta bakan ve web görünümü nesnesinin nereden geldiğini merak eden biri varsa, bunu bu yorumdaWebView webView = (WebView) appView.getEngine().getView(); gösterildiği gibi alabilirsiniz .
Andrew Dant

Xamarin.Android web görünümü oluşturucusunu kullanıyorsanız, kod aşağıdaki gibi Control.Settings.BuiltInZoomControls = true; Control.Settings.SetSupportZoom (doğru); Control.Settings.DisplayZoomControls = false;
Adil Saiyad

94

Bunları kullan:

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

1
artı 1, cevap için .. bana yardımcı oldu.
Akshatha Srinivas

1
Evet, setBuiltInZoomControls (true) ve setDisplayZoomControls (false) benim için çalıştı.
Pratik Saluja

34

Web görünümünüzü saran bir ScrollView olup olmadığınızı kontrol edin .

Benim durumumda sorun buydu. Görünüşe göre ScrollView kıstırma hareketinin önüne geçiyor.

Düzeltmek için Web Görünümü'nü ScrollView'ın dışına çıkarmanız yeterlidir .


6
günümü kurtardın
allemattio

Benim için harika çalışıyor. Artık iç içe geçmiş kaydırma görünümümü tamamen silebilirim!
Avi Parshan

android ekleyebildiğinizde çalışır: fillViewport = true <ScrollView android: layout_width = "match_parent" android: layout_height = "match_parent" android: fillViewport = "true">
androidAhmed

4

OnCreate içinde şunu ekleyin:

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

Html belgesinin içine şunu ekleyin:

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

Javascript'in içinde atlayın:

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

SetSupportZoom için varsayılan boole true, webview.getSettings().setSupportZoom(true);varsayılan olarak gerek olmamasıdır .
زياد

iyi cevap! HTML ile ilgili sorunlardan bahsettiniz, bu benim sorunumu çözmenin anahtarı! teşekkür ederim !
Siwei Shen 申思维

4

Bir Web Görünümünde yakınlaştırma denetimlerini etkinleştirmek için aşağıdaki satırı ekleyin:

webView.getSettings().setBuiltInZoomControls(true);

Bu kod satırıyla, Web Görünümünüzde yakınlaştırmayı etkinleştirirsiniz, sağlanan yakınlaştırma ve uzaklaştırma düğmelerini kaldırmak isterseniz aşağıdaki kod satırını ekleyin:

webView.getSettings().setDisplayZoomControls(false);

2

Bu kodu dene, iyi çalışıyorum.

 webSettings.setSupportZoom(true);
 webSettings.setBuiltInZoomControls(true);
 webSettings.setDisplayZoomControls(false);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.