コード例 #1
0
        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);
        }
コード例 #2
0
        public override void OnAttach(Context context)
        {
            base.OnAttach(context);

            _application = Context.ApplicationContext as SmtuScheduleApplication;

            if (Activity is ISchedulesViewer viewer)
            {
                _schedulesSwitcherCallback = viewer.ShowSchedule;
            }

            _dividerColor = new Color(UiUtilities.GetAttributeValue(
                Context,
                Resource.Attribute.colorDivider
            ));

            _tertiaryTextColor = new Color(UiUtilities.GetAttributeValue(
                Context,
                Resource.Attribute.textColorSubjectTertiary
            ));

            _secondaryTextColor = new Color(UiUtilities.GetAttributeValue(
                Context,
                Resource.Attribute.textColorSubjectSecondary
            ));

            _multiGroupsPrefix = Context.GetString(Resource.String.multiGroupSubjectPrefix);
        }
コード例 #3
0
        public CustomAlertDialog(Context context) : base(context)
        {
            _layout = View.Inflate(Context, Resource.Layout.customDialog, null);

            // Вместо android:padding = "?android:attr/dialogPreferredPadding" в customDialog.axml для API < 22.
            Int32 paddingInPx = Build.VERSION.SdkInt < BuildVersionCodes.LollipopMr1
                ? Context.Resources.GetDimensionPixelSize(Resource.Dimension.dialogContentPaddingApiLevelLess22)
                : UiUtilities.GetAttributePixelSize(Context, Resource.Attribute.dialogPreferredPadding);

            _layout.SetPadding(paddingInPx, paddingInPx, paddingInPx, _layout.PaddingBottom);

            SetView(_layout);

            _content = _layout.FindViewById <FrameLayout>(Resource.Id.customDialogContentFrameLayout);
        }
コード例 #4
0
ファイル: MainActivity.cs プロジェクト: shults-s/SmtuSchedule
        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));
        }
コード例 #5
0
ファイル: ItemPreview.cs プロジェクト: SradnickDev/RPG-Core
        public void OnPointerEnter(GameObject gbj)
        {
            if (!m_enablePreview)
            {
                return;
            }

            if (ItemUtilities.TryGetSlot(gbj, out m_currentTarget))
            {
                if (!m_currentTarget.IsEmpty)
                {
                    var popUpPosition =
                        UiUtilities.AnchoredPosition((RectTransform)m_currentTarget.transform,
                                                     m_previewPopup.RectTransform,
                                                     m_rectAnchor, m_offset);

                    m_previewPopup.transform.SetAsLastSibling();
                    m_previewPopup.Show(m_currentTarget, popUpPosition);
                }
            }
        }