protected override void OnAttached()
        {
            if (!(Element is View element))
            {
                return;
            }

            if (!UIDevice.CurrentDevice.CheckSystemVersion(11, 0) || !UIApplication.SharedApplication.Windows.Any())
            {
                return;
            }

            var insets = UIApplication.SharedApplication.Windows[0].SafeAreaInsets;

            initialMargin = element.Margin;

            if (insets.Top <= 0)
            {
                return;
            }

            var safeArea = SafeAreaEffect.GetSafeArea(element);

            element.Margin = new Thickness(
                initialMargin.Left + (safeArea.Left ? insets.Left : 0),
                initialMargin.Top + (safeArea.Top ? insets.Top : 0),
                initialMargin.Right + (safeArea.Right ? insets.Right : 0),
                initialMargin.Bottom + (safeArea.Bottom ? insets.Bottom : 0));
        }
Beispiel #2
0
        void UpdateInsets()
        {
            var insets   = UIApplication.SharedApplication.Windows[0].SafeAreaInsets;
            var safeArea = SafeAreaEffect.GetSafeArea(Element);

            Element.Margin = new Thickness(
                initialMargin.Left + CalculateInsets(insets.Left, safeArea.Left),
                initialMargin.Top + CalculateInsets(insets.Top, safeArea.Top),
                initialMargin.Right + CalculateInsets(insets.Right, safeArea.Right),
                initialMargin.Bottom + CalculateInsets(insets.Bottom, safeArea.Bottom));
        }
Beispiel #3
0
        protected override void OnAttached()
        {
            if (!IsEligibleToConsumeEffect)
            {
                return;
            }

            var insets   = UIApplication.SharedApplication.Windows[0].SafeAreaInsets;
            var safeArea = SafeAreaEffect.GetSafeArea(Element);

            initialMargin  = Element.Margin;
            Element.Margin = new Thickness(
                initialMargin.Left + CalculateInsets(insets.Left, safeArea.Left),
                initialMargin.Top + CalculateInsets(insets.Top, safeArea.Top),
                initialMargin.Right + CalculateInsets(insets.Right, safeArea.Right),
                initialMargin.Bottom + CalculateInsets(insets.Bottom, safeArea.Bottom));
        }
        void UpdateInsets()
        {
            // Double-check eligability something might've changed in regard to the windows
            if (!IsEligibleToConsumeEffect)
            {
                return;
            }

            var insets   = UIApplication.SharedApplication.Windows[0].SafeAreaInsets;
            var safeArea = SafeAreaEffect.GetSafeArea(Element);

            Element.Margin = new Thickness(
                initialMargin.Left + CalculateInsets(insets.Left, safeArea.Left),
                initialMargin.Top + CalculateInsets(insets.Top, safeArea.Top),
                initialMargin.Right + CalculateInsets(insets.Right, safeArea.Right),
                initialMargin.Bottom + CalculateInsets(insets.Bottom, safeArea.Bottom));
        }
 void ActivationToggle_Toggled(object sender, Forms.ToggledEventArgs e) =>
 SafeAreaEffect.SetSafeArea(stack, e.Value);
Beispiel #6
0
        public MainPage()
        {
            InitializeComponent();

            SafeAreaEffect.SetSafeArea(root, new Xamarin.CommunityToolkit.Helpers.SafeArea(true));
        }