Xamarin.Forms
Dostosowania wizualne specyficzne dla platformy
Szukaj…
Korekty idiomu
Korekty specyficzne dla idiomu można wykonać za pomocą kodu C #, na przykład w celu zmiany orientacji układu, niezależnie od tego, czy widok jest pokazywany, czy telefon, czy tablet.
if (Device.Idiom == TargetIdiom.Phone)
{
this.panel.Orientation = StackOrientation.Vertical;
}
else
{
this.panel.Orientation = StackOrientation.Horizontal;
}
Te funkcje są również dostępne bezpośrednio z kodu XAML:
<StackLayout x:Name="panel">
<StackLayout.Orientation>
<OnIdiom x:TypeArguments="StackOrientation">
<OnIdiom.Phone>Vertical</OnIdiom.Phone>
<OnIdiom.Tablet>Horizontal</OnIdiom.Tablet>
</OnIdiom>
</StackLayout.Orientation>
</StackLayout>
Dostosowania platformy
Dostosowania można dokonać dla określonych platform z kodu C #, na przykład w celu zmiany wypełnienia dla wszystkich docelowych platform.
if (Device.OS == TargetPlatform.iOS)
{
panel.Padding = new Thickness (10);
}
else
{
panel.Padding = new Thickness (20);
}
Dostępna jest również metoda pomocnicza dla skróconych deklaracji C #:
panel.Padding = new Thickness (Device.OnPlatform(10,20,0));
Te funkcje są również dostępne bezpośrednio z kodu XAML:
<StackLayout x:Name="panel">
<StackLayout.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="10"
Android="20" />
</StackLayout.Padding>
</StackLayout>
Używanie stylów
Podczas pracy z XAML użycie scentralizowanego Style
pozwala zaktualizować zestaw stylizowanych widoków z jednego miejsca. Wszystkie dopasowania idiomu i platformy można również zintegrować z Twoimi stylami.
<Style TargetType="StackLayout">
<Setter Property="Padding">
<Setter.Value>
<OnPlatform x:TypeArguments="Thickness"
iOS="10"
Android="20"/>
</Setter.Value>
</Setter>
</Style>
Korzystanie z niestandardowych widoków
Możesz tworzyć własne widoki, które można zintegrować ze swoją stroną dzięki tym narzędziom do dostosowywania.
Wybierz File > New > File... > Forms > Forms ContentView (Xaml)
i utwórz widok dla każdego określonego układu: TabletHome.xaml
i PhoneHome.xaml
.
Następnie wybierz File > New > File... > Forms > Forms ContentPage
i utwórz HomePage.cs
który zawiera:
using Xamarin.Forms;
public class HomePage : ContentPage
{
public HomePage()
{
if (Device.Idiom == TargetIdiom.Phone)
{
Content = new PhoneHome();
}
else
{
Content = new TabletHome();
}
}
}
Masz teraz stronę HomePage
która tworzy inną hierarchię widoków dla idiomów Phone
i Tablet
.