/// <summary> /// 此方法在视图View已经创建后返回的,此时view 还没有添加到父级中。 /// 构造View后,计算view的大小,并且调用View的layout方法,完成布局 /// </summary> /// <param name="view"></param> /// <param name="savedInstanceState"></param> public override void OnViewCreated(View view, Bundle savedInstanceState) { base.OnViewCreated(view, savedInstanceState); var size = _contentView.Measure(WindowSize.X / Density, WindowSize.Y / Density).Request; _contentView.Layout(new Xamarin.Forms.Rectangle(0, 0, size.Width, size.Height)); _dialogViewSize = new Size((int)Math.Ceiling(size.Width * Density) , (int)Math.Ceiling(size.Height * Density)); }
/// <summary> /// 设置对话框的Size(安卓单位) /// </summary> /// <param name="xfSize"></param> /// <returns></returns> protected virtual Size SetDialogSize(ref Xamarin.Forms.Size xfSize) { xfSize = _xfView.Measure(DPoint.X, DPoint.Y).Request; var density = Xamarin.Essentials.DeviceDisplay.MainDisplayInfo.Density; int width = (int)Math.Ceiling(xfSize.Width * density); int height = (int)Math.Ceiling(xfSize.Height * density); _dialogSize = new Size(width, height); return(_dialogSize); }
protected virtual void SetViewAndText(Toast toast) { if (_toastView != null) { //设定文本 var dialogEle = _toastView as IDialogElement; dialogEle?.OnCreated(_dialogMsg); var droidView = _toastView.ConvertFormsToNative(_mContext); var winWidth = WindowSize.X / Density; var winHeight = WindowSize.Y / Density; _toastViewSize = _toastView.Measure(winWidth, winHeight).Request; _toastView.Layout(new Xamarin.Forms.Rectangle(0, 0, _toastViewSize.Width, _toastViewSize.Height)); var lastView = WrapperViewAndControlSize(droidView); toast.View = lastView; } else { toast.SetText(_dialogMsg.Msg); } }