Android での WebView ズーム

この Android プラットフォーム固有の機能を使用すると、WebView でピンチズームとズーム コントロールを使用できます。 XAML では、WebView.EnableZoomControlsWebView.DisplayZoomControls のバインド可能なプロパティを boolean 値に設定することで使用されます。

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
    <WebView Source="https://www.xamarin.com"
             android:WebView.EnableZoomControls="true"
             android:WebView.DisplayZoomControls="true" />
</ContentPage>

WebView.EnableZoomControls のバインド可能なプロパティは、ピンチ ツー ズームが WebView で有効になっているかどうかを制御し、 WebView.DisplayZoomControls のバインド可能なプロパティは、ズーム コントロールを重ねて WebView で表示するかどうかを制御します。

または、Fluent API を使用して、プラットフォーム固有の C# から使用することもできます。

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

webView.On<Android>()
    .EnableZoomControls(true)
    .DisplayZoomControls(true);

WebView.On<Android> メソッドは、このプラットフォーム固有設定が Android 上でのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 名前空間の WebView.EnableZoomControls メソッドは、ピンチ ツー ズームが WebView で有効になっているかどうかを制御するために使用されます。 同じ名前空間の WebView.DisplayZoomControls メソッドは、ズーム コントロールを WebView で重ねて表示するかどうかを制御するために使用されます。 さらに、WebView.ZoomControlsEnabled メソッドと WebView.ZoomControlsDisplayed メソッドを使用して、ピンチ ツー ズームとズーム コントロールが有効になっているかどうかを返すことができます。

その結果、次のように WebView でピンチ ツー ズームを有効にし、WebView でズーム コントロールを重ね合わせることができます。

Android 上のズームされた WebView のスクリーンショット

重要

WebView で重ねるには、それぞれのバインド可能なプロパティまたはメソッドを介して、ズーム コントロールを有効にして表示する必要があります。