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)); }
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)); }
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);
public MainPage() { InitializeComponent(); SafeAreaEffect.SetSafeArea(root, new Xamarin.CommunityToolkit.Helpers.SafeArea(true)); }