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);
            }
  • 相关阅读:
    第一课:神经网络与机器学习
    自然语言基础之分词、标注、命名实体识别
    工程能力-语言-框架
    二叉树
    spark入门
    微平台推荐系统介绍(基于java)
    简历项目的梳理和面试准备
    统计学习方法李航学习笔记
    NopCommerce fluent validation使用
    NopCommerce支持多语言
  • 原文地址:https://www.cnblogs.com/Xamarin-Oz/p/11223911.html
Copyright © 2011-2022 走看看