/// <summary> /// On the element changed. /// </summary> /// <param name="e">E.</param> protected override void OnElementChanged(global::Xamarin.Forms.Platform.MacOS.ElementChangedEventArgs <global::Xamarin.Forms.View> e) { base.OnElementChanged(e); if (e.NewElement == null) { return; } _callView = e.NewElement as AgoraVideoView; var width = e.NewElement.Width; var height = e.NewElement.Height; _layout = new NSView(new CoreGraphics.CGRect(0, 0, (nfloat)Element.Width, (nfloat)Element.Height)); //(new RectangleF(0, 0, width, height)) { Hidden = false }; _videoService = Xamarin.Agora.Full.Forms.AgoraService.Current as AgoraServiceImplementation; SetNativeControl(_layout); _videoService.SetupView(UpdatedHolder()); }
/// <summary> /// On the element changed. /// </summary> /// <param name="e">E.</param> protected override void OnElementChanged(global::Xamarin.Forms.Platform.Android.ElementChangedEventArgs <global::Xamarin.Forms.View> e) { base.OnElementChanged(e); if (e.NewElement == null) { return; } global::Android.App.Application.SynchronizationContext.Post(_ => { _callView = e.NewElement as AgoraVideoView; _layout = new FrameLayout(Context) { LayoutParameters = new FrameLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent) }; _videoService = Xamarin.Agora.Full.Forms.AgoraService.Current as AgoraServiceImplementation; SetNativeControl(_layout); _videoService.SetupView(UpdatedHolder()); }, null); }
public AgoraVideoViewHolder(AgoraVideoView view, T nativeView) { VideoView = view; NativeView = nativeView; }