다음을 통해 공유


iOS의 NavigationPage 막대 텍스트 색 모드

이 플랫폼별은 탐색 모음의 광도에 NavigationPage 맞게 상태 표시줄 텍스트 색이 조정되는지 여부를 제어합니다. 연결된 속성을 열거형 값으로 설정 NavigationPage.StatusBarTextColorMode 하여 XAML에서 StatusBarTextColorMode 사용합니다.

<FlyoutPage xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
    x:Class="PlatformSpecifics.iOSStatusBarTextColorModePage">
    <FlyoutPage.Flyout>
        <ContentPage Title="Flyout Page Title" />
    </FlyoutPage.Flyout>
    <FlyoutPage.Detail>
        <NavigationPage BarBackgroundColor="Blue" BarTextColor="White"
                        ios:NavigationPage.StatusBarTextColorMode="MatchNavigationBarTextLuminosity">
            <x:Arguments>
                <ContentPage>
                    <Label Text="Slide the master page to see the status bar text color mode change." />
                </ContentPage>
            </x:Arguments>
        </NavigationPage>
    </FlyoutPage.Detail>
</FlyoutPage>

또는 흐름 API를 사용하여 C#에서 사용할 수 있습니다.

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

IsPresentedChanged += (sender, e) =>
{
    var flyoutPage = sender as FlyoutPage;
    if (flyoutPage.IsPresented)
        ((Xamarin.Forms.NavigationPage)flyoutPage.Detail)
          .On<iOS>()
          .SetStatusBarTextColorMode(StatusBarTextColorMode.DoNotAdjust);
    else
        ((Xamarin.Forms.NavigationPage)flyoutPage.Detail)
          .On<iOS>()
          .SetStatusBarTextColorMode(StatusBarTextColorMode.MatchNavigationBarTextLuminosity);
};

이 메서드는 NavigationPage.On<iOS> 이 플랫폼별이 iOS에서만 실행되도록 지정합니다. 네임스페이스의 메서드 Xamarin.Forms.PlatformConfiguration.iOSSpecificNavigationPage.SetStatusBarTextColorMode 탐색 모음의 광도와 NavigationPage 일치하도록 상태 표시줄 텍스트 색이 조정되는지 여부를 제어하며 StatusBarTextColorMode 열거형은 두 가지 가능한 값을 제공합니다.

  • DoNotAdjust – 상태 표시줄 텍스트 색을 조정해서는 안 됨을 나타냅니다.
  • MatchNavigationBarTextLuminosity – 상태 표시줄 텍스트 색이 탐색 모음의 광도와 일치해야 함을 나타냅니다.

또한 메서드를 GetStatusBarTextColorMode 사용하여 에 적용되는 열거형의 StatusBarTextColorMode 현재 값을 검색할 NavigationPage수 있습니다.

결과적으로 탐색 모음의 광도에 NavigationPage 맞게 상태 표시줄 텍스트 색을 조정할 수 있습니다. 이 예제에서는 사용자가 다음의 페이지 간에 Flyout Detail 전환할 때 상태 표시줄 텍스트 색이 FlyoutPage변경됩니다.

상태 표시줄 텍스트 색 모드 플랫폼별