xamarin.forms地图隐藏缩放按钮(+ - )

时间:2016-05-19 13:47:33

标签: google-maps xamarin.forms

我想隐藏xamarin.forms中的+ - 缩放按钮,但保持缩放功能

属性HasZoomEnabled会删除按钮,但也会禁用缩放功能

有没有渲染的解决方案吗?

如果不是我将很乐意在android中获得渲染的解决方案

2 个答案:

答案 0 :(得分:6)

使用自定义渲染器

创建自定义控件

所以在你的pcl项目中添加

public class CustomMap : Map
    {
        public CustomMap(MapSpan region) : base(region)
        {
        }
    }

在你的android项目中添加

[assembly: ExportRenderer(typeof(CustomMap), typeof(CustomMapRenderer))]

namespace MobApp.Droid.Renderers
{
    public class CustomMapRenderer : MapRenderer
    {
        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);                

            var map = ((MapView)Control).Map;
            map.UiSettings.ZoomControlsEnabled = false;
            map.UiSettings.MyLocationButtonEnabled = false;
            map.UiSettings.RotateGesturesEnabled = false;
        }
    }
}

并像这样使用

var map = new CustomMap(
                MapSpan.FromCenterAndRadius(
                    new Position(37.990599, 23.766820), Distance.FromKilometers(1)))

            {
                IsShowingUser = true,
                HeightRequest = 100,
                WidthRequest = 960,
                VerticalOptions = LayoutOptions.FillAndExpand
            };

答案 1 :(得分:3)

自2016年以来,有些事情可能会发生变化,因此,这是针对此问题的最新解决方案(在2020年1月):

您将需要创建注释中提到的CustomRenderer,并像下面这样覆盖以下方法“ OnMapReady”:

    protected override void OnMapReady(GoogleMap map)
    {
        base.OnMapReady(map);
        map.UiSettings.ZoomControlsEnabled = false;
        map.UiSettings.MyLocationButtonEnabled = false;
    }
相关问题