Große Seitentitel unter iOS
Dieser iOS-plattformspezifische Titel wird verwendet, um den Seitentitel als großer Titel auf der Navigationsleiste eines NavigationPage
anzuzeigen, für Geräte, die iOS 11 oder höher verwenden. Ein großer Titel ist linksbündig ausgerichtet und verwendet eine größere Schriftart und wechselt zu einem Standardtitel, wenn der Benutzer mit dem Scrollen von Inhalten beginnt, sodass die Bildschirmimmobilie effizient verwendet wird. Im Querformat kehrt der Titel jedoch zur Mitte der Navigationsleiste zurück, um das Inhaltslayout zu optimieren. Es wird in XAML verwendet, indem die NavigationPage.PrefersLargeTitles
angefügte Eigenschaft auf einen boolean
Wert festgelegt wird:
<NavigationPage 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"
...
ios:NavigationPage.PrefersLargeTitles="true">
...
</NavigationPage>
Alternativ kann es über C# mit der Fluent-API genutzt werden:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
var navigationPage = new Xamarin.Forms.NavigationPage(new iOSLargeTitlePageCS());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);
Die NavigationPage.On<iOS>
-Methode gibt an, dass diese plattformspezifische Nur unter iOS ausgeführt wird. Die NavigationPage.SetPrefersLargeTitle
-Methode steuert im Xamarin.Forms.PlatformConfiguration.iOSSpecific
Namespace, ob große Titel aktiviert sind.
Sofern große Titel auf dem NavigationPage
aktiviert sind, werden auf allen Seiten im Navigationsstapel große Titel angezeigt. Dieses Verhalten kann auf Seiten überschrieben werden, indem die Page.LargeTitleDisplay
angefügte Eigenschaft auf einen Wert der LargeTitleDisplayMode
Enumeration festgelegt wird:
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
Title="Large Title"
ios:Page.LargeTitleDisplay="Never">
...
</ContentPage>
Alternativ kann das Seitenverhalten mithilfe der Fluent-API von C# überschrieben werden:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
public class iOSLargeTitlePageCS : ContentPage
{
public iOSLargeTitlePageCS(ICommand restore)
{
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
...
}
...
}
Die Page.On<iOS>
-Methode gibt an, dass diese plattformspezifische Nur unter iOS ausgeführt wird. Die Page.SetLargeTitleDisplay
-Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific
Namespace steuert das Verhalten des großen Titels auf dem Page
, wobei die LargeTitleDisplayMode
Enumeration drei mögliche Werte bereitstellt:
Always
– erzwingen, dass die Navigationsleiste und der Schriftgrad das Großformat verwenden.Automatic
– verwenden Sie den gleichen Stil (groß oder klein) wie das vorherige Element im Navigationsstapel.Never
– erzwingt die Verwendung der regulären, kleinformat-Navigationsleiste.
Darüber hinaus kann die SetLargeTitleDisplay
-Methode verwendet werden, um die Enumerationswerte durch Aufrufen der LargeTitleDisplay
-Methode umzuschalten, die den aktuellen LargeTitleDisplayMode
zurückgibt:
switch (On<iOS>().LargeTitleDisplay())
{
case LargeTitleDisplayMode.Always:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Automatic);
break;
case LargeTitleDisplayMode.Automatic:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
break;
case LargeTitleDisplayMode.Never:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Always);
break;
}
Das Ergebnis ist, dass ein angegebenes LargeTitleDisplayMode
auf den Page
angewendet wird, der das Verhalten des großen Titels steuert: