public void ShowSessionControls(Activity activity, Session session) { if (_overlayIndicator != null) { return; } if (!(activity is FormsAppCompatActivity)) { return; } var indicator = new CobrowseCustomView(); var renderer = Platform.CreateRendererWithContext(indicator, activity); renderer.Element.Layout(new Xamarin.Forms.Rectangle(0, 0, indicator.WidthRequest, indicator.HeightRequest)); var nativeIndicator = renderer.View; var modal = new RelativeLayout(activity); var layoutParams = new RelativeLayout.LayoutParams( (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, (float)indicator.WidthRequest, activity.Resources.DisplayMetrics), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, (float)indicator.HeightRequest, activity.Resources.DisplayMetrics)) { MarginEnd = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 4f, activity.Resources.DisplayMetrics) }; layoutParams.AddRule(LayoutRules.CenterVertical); layoutParams.AddRule(LayoutRules.AlignParentEnd); modal.AddView(nativeIndicator, layoutParams); var rootFrameLayout = (ViewGroup)activity.Window.PeekDecorView(); rootFrameLayout.AddView(modal, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)); rootFrameLayout.Invalidate(); _overlayIndicator = modal; }
private UIView GetDefaultSessionIndicator(UIView container) { var indicator = new CobrowseCustomView(); var renderer = Platform.CreateRenderer(indicator); renderer.Element.Layout(new Xamarin.Forms.Rectangle(0, 0, indicator.WidthRequest, indicator.HeightRequest)); var nativeIndicator = renderer.NativeView; nativeIndicator.TranslatesAutoresizingMaskIntoConstraints = false; container.AddSubview(nativeIndicator); nativeIndicator.WidthAnchor.ConstraintEqualTo((float)indicator.WidthRequest).Active = true; nativeIndicator.HeightAnchor.ConstraintEqualTo((float)indicator.HeightRequest).Active = true; nativeIndicator.CenterYAnchor.ConstraintEqualTo(container.CenterYAnchor).Active = true; nativeIndicator.RightAnchor.ConstraintEqualTo(container.RightAnchor, constant: -20f).Active = true; return(nativeIndicator); }