iOS'ta Büyük Sayfa Başlıkları
Bu iOS platformuna özgü, iOS 11 veya üzerini kullanan cihazlarda sayfa başlığını bir gezinti çubuğunda büyük bir NavigationPage
başlık olarak görüntülemek için kullanılır. Büyük bir başlık sola hizalanır ve daha büyük bir yazı tipi kullanır ve kullanıcı içeriği kaydırmaya başladığında standart bir başlığa geçiş yaparak ekran emlaklarının verimli bir şekilde kullanılması sağlanır. Ancak, yatay yönde başlık, içerik düzenini iyileştirmek için gezinti çubuğunun ortasına döner. Ekli özelliği bir boolean
değere ayarlayarak NavigationPage.PrefersLargeTitles
XAML'de kullanılır:
<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>
Alternatif olarak, akıcı API kullanılarak C# dilinden de kullanılabilir:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
var navigationPage = new Xamarin.Forms.NavigationPage(new iOSLargeTitlePageCS());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);
NavigationPage.On<iOS>
yöntemi, platforma özgü bu uygulamanın yalnızca iOS üzerinde çalışacağını belirtir. NavigationPage.SetPrefersLargeTitle
yöntemi, ad alanında büyük başlıkların Xamarin.Forms.PlatformConfiguration.iOSSpecific
etkinleştirilip etkinleştirilmediğini denetler.
üzerinde büyük başlıkların etkinleştirilmesi koşuluyla NavigationPage
, gezinti yığınındaki tüm sayfalarda büyük başlıklar görüntülenir. Bu davranış, eklenen özellik sabit listesi değerine LargeTitleDisplayMode
ayarlanarak Page.LargeTitleDisplay
sayfalarda geçersiz kılınabilir:
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
Title="Large Title"
ios:Page.LargeTitleDisplay="Never">
...
</ContentPage>
Alternatif olarak, sayfa davranışı akıcı API kullanılarak C# ile geçersiz kılınabilir:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
public class iOSLargeTitlePageCS : ContentPage
{
public iOSLargeTitlePageCS(ICommand restore)
{
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
...
}
...
}
Page.On<iOS>
yöntemi, platforma özgü bu uygulamanın yalnızca iOS üzerinde çalışacağını belirtir. Page.SetLargeTitleDisplay
yöntemi, ad alanında Xamarin.Forms.PlatformConfiguration.iOSSpecific
büyük başlık davranışını Page
denetler ve LargeTitleDisplayMode
numaralandırma üç olası değer sağlar:
Always
– gezinti çubuğunu ve yazı tipi boyutunu büyük biçimi kullanmaya zorlar.Automatic
– gezinti yığınındaki önceki öğeyle aynı stili (büyük veya küçük) kullanın.Never
– normal, küçük biçimli gezinti çubuğunun kullanımını zorlar.
Ayrıca yöntemi, SetLargeTitleDisplay
geçerli LargeTitleDisplayMode
değerini döndüren yöntemini çağırarak LargeTitleDisplay
numaralandırma değerlerini değiştirmek için kullanılabilir:
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;
}
Sonuç, belirtilen LargeTitleDisplayMode
bir öğesinin Page
büyük başlık davranışını denetleyen öğesine uygulanmasıdır: