Latihan - Menggunakan StackLayout untuk membangun antarmuka pengguna
Dalam latihan ini, Anda menggunakan kontainer berlapis StackLayout
untuk mengatur tampilan di Antarmuka Pengguna (UI) Anda. Cuplikan layar pertama menunjukkan tata letak yang diterapkan oleh proyek awal, dan yang kedua menunjukkan tata letak untuk proyek yang telah selesai. Tugas Anda adalah menggunakan kontainer StackLayout
dan LayoutOptions
untuk mengubah proyek awal menjadi versi yang telah selesai.
Menjelajahi solusi awal
Solusi awal berisi aplikasi kalkulator tip yang berfungsi penuh. Mulailah dengan menjelajahi UI untuk memahami apa yang dilakukan aplikasi.
Dengan menggunakan Visual Studio, buka solusi awal di folder exercise2/TipCalculator di repositori yang Anda klon di awal latihan sebelumnya.
Buat dan jalankan aplikasi pada sistem operasi pilihan Anda.
Masukkan nomor ke dalam kotak teks dan gunakan aplikasi untuk melihat cara kerja aplikasi.
Lakukan eksperimen dengan tombol jumlah tip dan penggeser.
Setelah selesai, tutup aplikasi.
Buka MainPage.xaml. Perhatikan bahwa semua tampilan ditempatkan menjadi satu
VerticalStackLayout
, seperti yang ditunjukkan oleh markup XAML berikut:<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:TipCalculator" x:Class="TipCalculator.MainPage"> <VerticalStackLayout> <Label Text="Bill" /> <Entry x:Name="billInput" Placeholder="Enter Amount" Keyboard="Numeric" /> <Label Text="Tip" /> <Label x:Name="tipOutput" Text="0.00" /> <Label Text="Total" /> <Label x:Name="totalOutput" Text="0.00" /> <Label Text="Tip Percentage" /> <Label x:Name="tipPercent" Text="15%" /> <Slider x:Name="tipPercentSlider" Minimum="0" Maximum="100" Value="15" /> <Button Text="15%" Clicked="OnNormalTip" /> <Button Text="20%" Clicked="OnGenerousTip" /> <Button x:Name="roundDown" Text="Round Down" /> <Button x:Name="roundUp" Text="Round Up" /> </VerticalStackLayout> </ContentPage>
Memperbaiki antarmuka pengguna
Setelah melihat aplikasi berjalan, Anda dapat membuatnya terlihat lebih baik dengan menambahkan HorizontalStackLayout
kontainer. Tujuannya adalah untuk membuat aplikasi terlihat seperti cuplikan layar di awal lab.
Buka file MainPage.xaml.
Tambahkan unit pengisi
40
dan unit spasi10
keVerticalStackLayout
:<VerticalStackLayout Padding="40" Spacing="10">
Tambahkan
HorizontalStackLayout
untuk mengelompokkanLabel
yang bertuliskan Tagihan dengan bidangEntry
di bawahnya. Atur propertiSpacing
ke10
.Atur
WidthRequest
dari TagihanLabel
ke100
dan propertiVerticalOptions
keCenter
. Perubahan ini memastikan bahwa label selaras secara vertikal denganEntry
bidang .<HorizontalStackLayout Spacing="10"> <Label Text="Bill" WidthRequest="100" VerticalOptions="Center"/> <Entry ... /> </HorizontalStackLayout>
Tambahkan
HorizontalStackLayout
lain untuk mengelompokkanLabel
yang bertuliskan Tip denganLabel
bernama tipOutput. Atur propertiSpacing
ke10
, dan propertiMargin
ke0,20,0,0
.Atur
WidthRequest
dari TipLabel
ke100
<HorizontalStackLayout Margin="0,20,0,0" Spacing="10"> <Label Text="Tip" WidthRequest="100" /> <Label .../> </HorizontalStackLayout>
Gunakan
HorizontalStackLayout
untuk mengelompokkanLabel
yang bertuliskan Total denganLabel
bernama totalOutput. Atur propertiSpacing
ke10
.Atur
WidthRequest
dari TotalLabel
ke100
<HorizontalStackLayout Spacing="10"> <Label Text="Total" WidthRequest="100" /> <Label .../> </HorizontalStackLayout>
Tambahkan
HorizontalStackLayout
lain untuk mengelompokkanLabel
yang bertuliskan Persentase Tip denganLabel
bernama tipPercent.Atur
VerticalOptions
properti iniHorizontalStackLayout
keEnd
dan atur properti keSpacing
10
:Atur
WidthRequest
dari Persentase TipLabel
ke100
<HorizontalStackLayout VerticalOptions="End" Spacing="10"> <Label Text="Tip Percentage" WidthRequest="100"/> <Label ... /> </HorizontalStackLayout>
Gunakan
HorizontalStackLayout
untuk mengelompokkanButton
dengan keterangan 15% danButton
dengan keterangan 20%.Atur properti
Margin
dariStackLayout
ini ke0,20,0,0
, dan propertiSpacing
ke10
:<HorizontalStackLayout Margin="0,20,0,0" Spacing="10"> <Button Text="15%" ... /> <Button Text="20%" ... /> </HorizontalStackLayout>
Tambahkan
HorizontalStackLayout
terakhir untuk mengelompokkanButton
dengan keterangan, Pembulatan ke Bawah danButton
dengan keterangan, Pembulatan ke Atas.. Atur propertiMargin
dariStackLayout
ini ke0,20,0,0
, dan propertiSpacing
ke10
:<HorizontalStackLayout Margin="0,20,0,0" Spacing="10"> <Button ... Text="Round Down" /> <Button ... Text="Round Up" /> </HorizontalStackLayout>
Pada keempat kontrol tombol, atur properti
HorizontalOptions
keCenter
dan propertiWidthRequest
ke150
. Misalnya:<Button Text="15%" WidthRequest="150" HorizontalOptions="Center" ... />
Markup XAML lengkap untuk halaman konten akan terlihat seperti ini:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:TipCalculator"
x:Class="TipCalculator.MainPage">
<VerticalStackLayout Padding="40" Spacing="10">
<HorizontalStackLayout Spacing="10">
<Label Text="Bill" WidthRequest="100" VerticalOptions="Center" />
<Entry x:Name="billInput" Placeholder="Enter Amount" Keyboard="Numeric" />
</HorizontalStackLayout>
<HorizontalStackLayout Margin="0,20,0,0" Spacing="10">
<Label Text="Tip" WidthRequest="100" />
<Label x:Name="tipOutput" Text="0.00" />
</HorizontalStackLayout>
<HorizontalStackLayout Spacing="10">
<Label Text="Total" WidthRequest="100"/>
<Label x:Name="totalOutput" Text="0.00" />
</HorizontalStackLayout>
<HorizontalStackLayout VerticalOptions="End" Spacing="10">
<Label Text="Tip Percentage" WidthRequest="100"/>
<Label x:Name="tipPercent" Text="15%" />
</HorizontalStackLayout>
<Slider x:Name="tipPercentSlider" Minimum="0" Maximum="100" Value="15" />
<HorizontalStackLayout Margin="0,20,0,0" Spacing="10">
<Button Text="15%" Clicked="OnNormalTip" WidthRequest="150" HorizontalOptions="Center"/>
<Button Text="20%" Clicked="OnGenerousTip" WidthRequest="150" HorizontalOptions="Center"/>
</HorizontalStackLayout>
<HorizontalStackLayout Margin="0,20,0,0" Spacing="10">
<Button x:Name="roundDown" Text="Round Down" WidthRequest="150" HorizontalOptions="Center"/>
<Button x:Name="roundUp" Text="Round Up" WidthRequest="150" HorizontalOptions="Center"/>
</HorizontalStackLayout>
</VerticalStackLayout>
</ContentPage>
Periksa hasilnya
Jalankan aplikasi lagi dan lihat perbedaan di antarmuka pengguna. Verifikasi bahwa kontrol diselaraskan dengan benar, dan berukuran tepat serta diberi spasi.
Anda menggunakan kontainer VerticalStackLayout
dan HorizontalStackLayout
untuk meningkatkan estetika antarmuka pengguna yang ada. Tata letak ini adalah panel tata letak paling sederhana, tetapi cukup kuat untuk menghasilkan antarmuka pengguna yang masuk akal.