zoukankan      html  css  js  c++  java
  • Xamarin.Form 调用原生控件的方法

    1. 将原生控件jar包转为dll  

    2. 将Andriod项目引入转换之后的dll文件

    3. Xamarin.Form项目创建一个Page,加入传播参数的静态字段

     public static BindableProperty PinsProperty =
                         BindableProperty.Create<MapPage, IEnumerable>(p => p.Pins, default(IEnumerable));
    
            public IEnumerable Pins
            {
                get
                {
                    return (IEnumerable)GetValue(PinsProperty);
                }
                set
                {
                    this.SetValue(PinsProperty, value);
                }
            }

    4. Xamarin.Android项目中创建一个ViewRender,继承PageRenderer。重写OnElementChanged(ElementChangedEventArgs<Page> e)方法。

     protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
            {
                base.OnElementChanged(e);
                if (this.Context == null) return;
                mapPage = e.NewElement as MapPage;
    
                layout1 = new LinearLayout(this.Context);
                this.AddView(layout1);
                mapView = new MapView(this.Context);
                mapView.Map.MyLocationEnabled = true;
    
                #region 比例
                MapStatus.Builder builder = new MapStatus.Builder();
                builder.Zoom(12.0f);
                mapView.Map.SetMapStatus(MapStatusUpdateFactory.NewMapStatus(builder.Build()));
                #endregion
    
                mapPage.Pins.Cast<Models.Station>().ToList().ForEach(x => {
                    LatLng point = new LatLng(x.Longitude, x.Latitude);
                    //构建Marker图标
                    BitmapDescriptor bitmap_off = BitmapDescriptorFactory
                            .FromResource(Resource.Drawable.Map_OffLine);
                    BitmapDescriptor bitmap_on = BitmapDescriptorFactory
                            .FromResource(Resource.Drawable.Map_OnLine);
                    //构建MarkerOption,用于在地图上添加Marker
                    OverlayOptions option = new MarkerOptions().InvokeIcon(bitmap_off);
    
    
                layout1.AddView(mapView);
            }
  • 相关阅读:
    Something broke! (Error 500)——reviewboard
    linux内核--自旋锁的理解
    I.MX6 mkuserimg.sh hacking
    I.MX6 DNS 查看、修改方法
    I.MX6 android mkuserimg.sh
    I.MX6 AW-NB177NF wifi HAL 调试修改
    I.MX6 wpa_supplicant_8 编译问题
    I.MX6 MAC Address hacking
    I.MX6 MAC地址修改
    I.MX6 U-boot imxotp MAC address 写入
  • 原文地址:https://www.cnblogs.com/Xamarin-Oz/p/11223911.html
Copyright © 2011-2022 走看看