Xamarin.Form 调用原生控件的方法

mac2022-06-30  25

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); }

 

转载于:https://www.cnblogs.com/Xamarin-Oz/p/11223911.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)