/// <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));
        }
Exemple #2
0
        /// <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);
     }
 }