Xamarin.Forms Samouczek dotyczący obiektu StackLayout
Zanim podejmiesz próbę ukończenia tego samouczka, musisz pomyślnie ukończyć następujące szkolenia:
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Utwórz element Xamarin.Forms
StackLayout
w języku XAML. - Określanie orientacji obiektu
StackLayout
. - Kontrolowanie rozszerzenia i wyrównania widoku podrzędnego w obiekcie
StackLayout
.
Użyjesz programu Visual Studio 2019 lub Visual Studio dla komputerów Mac, aby utworzyć prostą aplikację, która pokazuje, jak wyrównać kontrolki w elemencie StackLayout
. Na poniższych zrzutach ekranu przedstawiono ostateczną wersję aplikacji:
Użyjesz również Przeładowywanie na gorąco XAML, Xamarin.Forms aby zobaczyć zmiany interfejsu użytkownika bez ponownego kompilowania aplikacji.
Tworzenie obiektu stacklayout
StackLayout
to układ, który organizuje elementy podrzędne w poziome lub pionowe stosy jednowymiarowe. Domyślnie układ StackLayout
ma orientację pionową.
Do ukończenia tego samouczka jest potrzebny program Visual Studio 2019 (najnowsza wersja) z zainstalowanym pakietem roboczym Opracowywanie aplikacji mobilnych za pomocą środowiska .NET. Ponadto będzie potrzebny sparowany komputer Mac w celu kompilowania aplikacji samouczka w systemie iOS. Aby uzyskać informacje na temat instalowania platformy Xamarin, zobacz Instalowanie platformy Xamarin. Aby uzyskać informacje na temat łączenia programu Visual Studio 2019 z hostem kompilacji Mac, zobacz Parowanie z komputerem Mac w celu opracowywania aplikacji platformy Xamarin.iOS.
Uruchom program Visual Studio i utwórz nową pustą Xamarin.Forms aplikację o nazwie StackLayoutTutorial.
Ważne
Fragmenty kodu w języku C# i XAML w tym samouczku wymagają, aby rozwiązanie miało nazwę StackLayoutTutorial. Użycie innej nazwy spowoduje błędy kompilacji po skopiowaniu kodu z tego samouczka do rozwiązania.
Aby uzyskać więcej informacji na temat tworzonej biblioteki .NET Standard, zobacz Anatomia Xamarin.Forms aplikacji w przewodnikuXamarin.Forms Szybki start — szczegółowe omówienie.
W Eksploratorze rozwiązań w projekcie StackLayoutTutorial kliknij dwukrotnie plik MainPage.xaml, aby go otworzyć. Następnie w pliku MainPage.xaml usuń cały kod szablonu i zastąp go następującym kodem:
<?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="StackLayoutTutorial.MainPage"> <StackLayout Margin="20,35,20,25"> <Label Text="The StackLayout has its Margin property set, to control the rendering position of the StackLayout." /> <Label Text="The Padding property can be set to specify the distance between the StackLayout and its children." /> <Label Text="The Spacing property can be set to specify the distance between views in the StackLayout." /> </StackLayout> </ContentPage>
Ten kod deklaratywnie definiuje interfejs użytkownika dla strony, która składa się z trzech wystąpień obiektu
Label
w obiekcieStackLayout
. ProjektStackLayout
umieszcza widoki podrzędne (wystąpienia obiektuLabel
) w jednym wierszu, który jest domyślnie w orientacji pionowej. Ponadto właściwośćMargin
wskazuje miejsce renderowania obiektuStackLayout
w ramach obiektuContentPage
.Uwaga
Oprócz właściwości
Margin
w obiekcieStackLayout
można również ustawić właściwościPadding
iSpacing
. Wartość właściwościPadding
określa odległość między widokami w projekcieStackLayout
, a wartość właściwościSpacing
określa ilość miejsca między poszczególnymi elementami podrzędnymi w projekcieStackLayout
. Aby uzyskać więcej informacji, zobacz Margines i wypełnienie.Na pasku narzędzi programu Visual Studio naciśnij przycisk Uruchom (trójkątny przycisk przypominający przycisk odtwarzania), aby uruchomić aplikację w wybranym zdalnym symulatorze systemu iOS lub emulatorze systemu Android:
Aby uzyskać więcej informacji na temat obiektu
StackLayout
, zobacz Xamarin.Forms StackLayout.
Określanie orientacji
W pliku MainPage.xaml zmodyfikuj deklarację
StackLayout
, aby elementy podrzędne były wyrównane w poziomie, a nie w pionie:<StackLayout Margin="20,35,20,25" Orientation="Horizontal"> <Label Text="The StackLayout has its Margin property set, to control the rendering position of the StackLayout." /> <Label Text="The Padding property can be set to specify the distance between the StackLayout and its children." /> <Label Text="The Spacing property can be set to specify the distance between views in the StackLayout." /> </StackLayout>
Ten kod ustawia dla właściwości
Orientation
wartośćHorizontal
.Jeśli aplikacja nadal działa, zapisz zmiany w pliku, a interfejs użytkownika aplikacji zostanie automatycznie zaktualizowany w symulatorze lub w emulatorze. W przeciwnym razie na pasku narzędzi programu Visual Studio naciśnij przycisk Uruchom (trójkątny przycisk przypominający przycisk odtwarzania), aby uruchomić aplikację w wybranym zdalnym symulatorze systemu iOS lub emulatorze systemu Android:
Pamiętaj, że wystąpienia obiektu
Label
w obiekcieStackLayout
są teraz wyrównane w poziomie, a nie w pionie.
Kontrolowanie wyrównania i rozszerzenia
Rozmiar i położenie widoków podrzędnych w obiekcie StackLayout
zależą od wartości widoków HeightRequest
podrzędnych i WidthRequest
właściwości oraz wartości HorizontalOptions
właściwości i VerticalOptions
.
Właściwości HorizontalOptions
i VerticalOptions
można ustawić na pola struktury LayoutOptions
, która hermetyzuje dwie preferencje układu:
- Wyrównanie — preferowane wyrównanie widoku podrzędnego, które określa jego położenie i rozmiar w układzie nadrzędnym.
- Rozszerzenie — wskazuje, czy widok podrzędny powinien korzystać z dodatkowego miejsca, jeśli jest dostępne (opcja używana tylko przez obiekt
StackLayout
).
W pliku MainPage.xaml zmodyfikuj deklarację obiektu
StackLayout
, aby ustawić opcje wyrównania i rozszerzenia dla każdego obiektuLabel
:<StackLayout Margin="20,35,20,25"> <Label Text="Start" HorizontalOptions="Start" BackgroundColor="Gray" /> <Label Text="Center" HorizontalOptions="Center" BackgroundColor="Gray" /> <Label Text="End" HorizontalOptions="End" BackgroundColor="Gray" /> <Label Text="Fill" HorizontalOptions="Fill" BackgroundColor="Gray" /> <Label Text="StartAndExpand" VerticalOptions="StartAndExpand" BackgroundColor="Gray" /> <Label Text="CenterAndExpand" VerticalOptions="CenterAndExpand" BackgroundColor="Gray" /> <Label Text="EndAndExpand" VerticalOptions="EndAndExpand" BackgroundColor="Gray" /> <Label Text="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="Gray" /> </StackLayout>
Ten kod ustawia preferencje wyrównania w pierwszych czterech wystąpieniach obiektu
Label
oraz preferencje rozszerzenia w czterech końcowych wystąpieniach obiektuLabel
. PolaStart
,Center
,End
iFill
są używane do definiowania wyrównania wystąpień obiektuLabel
w obiekcie nadrzędnymStackLayout
. PolaStartAndExpand
,CenterAndExpand
,EndAndExpand
iFillAndExpand
są używane do definiowania preferencji wyrównania oraz wskazywania, czy widok ma zajmować więcej miejsca, jeśli jest dostępne w obiekcie nadrzędnymStackLayout
.Uwaga
Domyślna wartość właściwości widoku
HorizontalOptions
iVerticalOptions
toFill
.Jeśli aplikacja nadal działa, zapisz zmiany w pliku, a interfejs użytkownika aplikacji zostanie automatycznie zaktualizowany w symulatorze lub w emulatorze. W przeciwnym razie na pasku narzędzi programu Visual Studio naciśnij przycisk Uruchom (trójkątny przycisk przypominający przycisk odtwarzania), aby uruchomić aplikację w wybranym zdalnym symulatorze systemu iOS lub emulatorze systemu Android:
Obiekt
StackLayout
zachowuje tylko preferencje wyrównania w widokach podrzędnych, których kierunek jest przeciwny do orientacji obiektuStackLayout
. W związku z tym widoki podrzędne obiektuLabel
w obiekcieStackLayout
w orientacji pionowej mają właściwościHorizontalOptions
ustawiane na jedno z pól wyrównania:Start
, które powoduje umieszczenie obiektuLabel
po lewej stronie obiektuStackLayout
.Center
, które powoduje wyśrodkowanie obiektuLabel
w obiekcieStackLayout
.End
, które powoduje umieszczenie obiektuLabel
po prawej stronie obiektuStackLayout
.Fill
, które zapewnia, że obiektLabel
wypełnia szerokość obiektuStackLayout
.
Obiekt
StackLayout
może rozwijać widoki podrzędne tylko w kierunku zgodnym ze swoją orientacją. W związku z tym obiektStackLayout
w orientacji pionowej może rozwijać widoki podrzędne obiektuLabel
, które ustawiają właściwościVerticalOptions
na jedno z pól rozszerzenia. Oznacza to, że w przypadku wyrównania w pionie każdy obiektLabel
zajmuje tyle samo miejsca w obiekcieStackLayout
. Tylko końcowy obiektLabel
, który ustawia właściwośćVerticalOptions
naFillAndExpand
, ma inny rozmiar.Ważne
Gdy całe miejsce w obiekcie
StackLayout
jest używane, preferencje rozszerzenia nie wywołują żadnego efektu.Zatrzymaj aplikację w programie Visual Studio.
Aby uzyskać więcej informacji na temat wyrównania i rozszerzenia, zobacz Opcje układu w programie Xamarin.Forms.
Gratulacje!
Gratulujemy ukończenia tego samouczka, w którym przedstawiono sposób wykonywania następujących czynności:
- Utwórz element Xamarin.Forms
StackLayout
w języku XAML. - Określanie orientacji obiektu
StackLayout
. - Kontrolowanie rozszerzenia i wyrównania widoku podrzędnego w obiekcie
StackLayout
.
Następne kroki
Aby dowiedzieć się więcej na temat podstaw tworzenia aplikacji mobilnych za pomocą Xamarin.Formsusługi , przejdź do samouczka Label.
Pokrewne łącza
Widzisz problem w tej sekcji? W takim przypadku prześlij opinię, abyśmy mogli udoskonalić tę sekcję.