Xamarin.Forms
Plattformspecifika visuella justeringar
Sök…
Idiomjusteringar
Idiomspecifika justeringar kan göras från C # -kod, till exempel för att ändra layoutorienteringen om vyn visas eller en telefon eller en surfplatta.
if (Device.Idiom == TargetIdiom.Phone)
{
this.panel.Orientation = StackOrientation.Vertical;
}
else
{
this.panel.Orientation = StackOrientation.Horizontal;
}
Dessa funktioner är också tillgängliga direkt från XAML-kod:
<StackLayout x:Name="panel">
<StackLayout.Orientation>
<OnIdiom x:TypeArguments="StackOrientation">
<OnIdiom.Phone>Vertical</OnIdiom.Phone>
<OnIdiom.Tablet>Horizontal</OnIdiom.Tablet>
</OnIdiom>
</StackLayout.Orientation>
</StackLayout>
Plattformsjusteringar
Justeringar kan göras för specifika plattformar från C # -kod, till exempel för att byta utfyllnad för alla riktade plattformar.
if (Device.OS == TargetPlatform.iOS)
{
panel.Padding = new Thickness (10);
}
else
{
panel.Padding = new Thickness (20);
}
En hjälpmetod finns också för förkortade C # -deklarationer:
panel.Padding = new Thickness (Device.OnPlatform(10,20,0));
Dessa funktioner är också tillgängliga direkt från XAML-kod:
<StackLayout x:Name="panel">
<StackLayout.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="10"
Android="20" />
</StackLayout.Padding>
</StackLayout>
Med hjälp av stilar
När du arbetar med XAML kan du använda en centraliserad Style
att uppdatera en uppsättning stilvyer från ett ställe. Alla idiom- och plattformsjusteringar kan också integreras i dina stilar.
<Style TargetType="StackLayout">
<Setter Property="Padding">
<Setter.Value>
<OnPlatform x:TypeArguments="Thickness"
iOS="10"
Android="20"/>
</Setter.Value>
</Setter>
</Style>
Använda anpassade vyer
Du kan skapa anpassade vyer som kan integreras på din sida tack vare justeringsverktygen.
Välj File > New > File... > Forms > Forms ContentView (Xaml)
och skapa en vy för varje specifik layout: TabletHome.xaml
och PhoneHome.xaml
.
Välj sedan File > New > File... > Forms > Forms ContentPage
och skapa en HomePage.cs
som innehåller:
using Xamarin.Forms;
public class HomePage : ContentPage
{
public HomePage()
{
if (Device.Idiom == TargetIdiom.Phone)
{
Content = new PhoneHome();
}
else
{
Content = new TabletHome();
}
}
}
Du har nu en HomePage
som skapar en annan åsikt hierarki för Phone
och Tablet
idiom.