public CustomAlertDialog(Context context) : base(context)
        {
            // Вместо "?android:attr/dialogPreferredPadding" в customDialogLayout.axml для уровней API ниже 22.
            _preferredPadding = Build.VERSION.SdkInt < BuildVersionCodes.LollipopMr1
                ? Context.Resources.GetDimensionPixelSize(Resource.Dimension.dialogPreferredPaddingApiLess22)
                : UiUtilities.GetAttributeValuePixelSize(Context, Resource.Attribute.dialogPreferredPadding);

            ShowEvent += (s, e) =>
            {
                WindowManagerLayoutParams layoutParameters = new WindowManagerLayoutParams();
                layoutParameters.CopyFrom(Window.Attributes);

                IWindowManager windowManager = (context as AppCompatActivity).WindowManager;
                (Int32 width, Int32 height) = UiUtilities.GetScreenPixelSize(windowManager);

                Int32 maxDialogHeight = (Int32)(height * 0.9);
                if (Window.DecorView.Height > maxDialogHeight)
                {
                    layoutParameters.Height = maxDialogHeight;
                }

                Window.Attributes = layoutParameters;
            };

            _layout = View.Inflate(Context, Resource.Layout.customDialogLayout, null) as ViewGroup;
            _layout.SetPadding(_preferredPadding, _preferredPadding, _preferredPadding, _preferredPadding);

            SetView(_layout);
        }
Example #2
0
        private void ShowLayoutMessage(Java.Lang.ICharSequence message, Boolean enableLinks = true)
        {
            _contentLayout.RemoveAllViews();

            View layout = View.Inflate(this, Resource.Layout.message, _contentLayout);

            TextView textView = layout.FindViewById <TextView>(Resource.Id.messageTextView);

            if (enableLinks)
            {
                textView.MovementMethod = LinkMovementMethod.Instance;
                textView.TextFormatted  = message.StripUrlUnderlines();
            }
            else
            {
                textView.TextFormatted = message;
            }

            textView.TextFormatted = textView.TextFormatted.Trim();
            textView.SetMaxWidth((Int32)(UiUtilities.GetScreenPixelSize(WindowManager).width * 0.9));
        }