Velké názvy stránek v iOSu
Tato platforma pro iOS se používá k zobrazení názvu stránky jako velkého názvu na navigačním panelu zařízení NavigationPage
, která používají iOS 11 nebo vyšší. Velký název je zarovnaný doleva a používá větší písmo a přechází na standardní název, protože uživatel začne posouvat obsah, aby se nemovitost obrazovky efektivně používala. V orientaci na šířku se ale nadpis vrátí do středu navigačního panelu, aby se optimalizovalo rozložení obsahu. Využívá se v XAML nastavením NavigationPage.PrefersLargeTitles
připojené vlastnosti na boolean
hodnotu:
<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>
Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT API:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
var navigationPage = new Xamarin.Forms.NavigationPage(new iOSLargeTitlePageCS());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);
Metoda NavigationPage.On<iOS>
určuje, že se tato platforma bude spouštět pouze v iOSu. Metoda NavigationPage.SetPrefersLargeTitle
v Xamarin.Forms.PlatformConfiguration.iOSSpecific
oboru názvů určuje, zda jsou povolené velké názvy.
Za předpokladu, že jsou na panelu NavigationPage
povolené velké názvy, budou všechny stránky v navigačním zásobníku zobrazovat velké názvy. Toto chování lze na stránkách přepsat nastavením Page.LargeTitleDisplay
připojené vlastnosti na hodnotu výčtu LargeTitleDisplayMode
:
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
Title="Large Title"
ios:Page.LargeTitleDisplay="Never">
...
</ContentPage>
Případně je možné chování stránky přepsat z jazyka C# pomocí rozhraní FLUENT API:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
public class iOSLargeTitlePageCS : ContentPage
{
public iOSLargeTitlePageCS(ICommand restore)
{
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
...
}
...
}
Metoda Page.On<iOS>
určuje, že se tato platforma bude spouštět pouze v iOSu. Metoda Page.SetLargeTitleDisplay
v Xamarin.Forms.PlatformConfiguration.iOSSpecific
oboru názvů řídí chování velkého názvu ve Page
výčtu LargeTitleDisplayMode
poskytující tři možné hodnoty:
Always
– vynuťte, aby navigační panel a velikost písma používaly velký formát.Automatic
– použijte stejný styl (velký nebo malý) jako předchozí položka v navigačním zásobníku.Never
– vynutí použití normálního, malého navigačního panelu.
Kromě toho lze metodu SetLargeTitleDisplay
použít k přepnutí hodnot výčtu voláním LargeTitleDisplay
metody, která vrací aktuální LargeTitleDisplayMode
:
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;
}
Výsledkem je použití zadaného LargeTitleDisplayMode
objektu Page
, který řídí chování velkého názvu: