Формы Xamarin - установите для SetUseSafeArea значение true глобально для всех страниц. - PullRequest
1 голос
/ 05 августа 2020

В формах xamarin вы можете использовать

On<iOS>().SetUseSafeArea(true);

И это гарантирует, что ваши представления не будут отображаться поверх каких-либо выемок / небезопасных областей.

Я интересно, могу ли я установить это глобально, чтобы мне не приходилось добавлять эту строку кода на каждую страницу содержимого.

Предпочтительно решение без настраиваемого средства визуализации (если только это не единственный способ может быть достигнуто)

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Единственный способ - включить безопасную область в пользовательском рендерере страницы.

[assembly: ExportRenderer(typeof(Xamarin.Forms.Page), typeof(MyRenderer))]
namespace App1.iOS
{
    class MyRenderer :PageRenderer
    {

        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

            var page = Element as Xamarin.Forms.Page;

            page.On<Xamarin.Forms.PlatformConfiguration.iOS>().SetUseSafeArea(true);
        }

    }
}
0 голосов
/ 05 августа 2020

Добавьте это в свое приложение. Ресурсы

<Application 
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:iOsSpecific="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
x:Class="YourApp.App">
<Application.Resources>
    <ResourceDictionary>
        
        <Style TargetType="iOsSpecific:Page">
            <Setter Property="UseSafeArea" Value="True"/>
        </Style>

Он будет нацелен на все Page на iOS платформе c глобально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...