Bagikan melalui


Ringkasan Bab 25. Varietas halaman

Catatan

Buku ini diterbitkan pada musim semi 2016, dan belum diperbarui sejak saat itu. Ada banyak dalam buku yang tetap berharga, tetapi beberapa materi sudah kedaluarsa, dan beberapa topik tidak lagi sepenuhnya benar atau lengkap.

Sejauh ini Anda telah melihat dua kelas yang berasal dari Page: ContentPage dan NavigationPage. Bab ini menyajikan dua orang lainnya:

Jenis halaman ini menyediakan opsi navigasi yang lebih canggih daripada yang NavagationPage dibahas dalam Bab 24. Navigasi Halaman.

Master dan Detail

MasterDetailPage menentukan dua properti jenis Page: Master dan Detail. Umumnya Anda mengatur masing-masing properti ini ke ContentPage. Tampilan MasterDetailPage dan sakelar di antara kedua halaman ini.

Ada dua cara mendasar untuk beralih di antara kedua halaman ini:

  • pisahkan di mana master dan detail berdampingan
  • popover di mana halaman detail mencakup atau sebagian mencakup halaman master

Ada beberapa variasi pendekatan popover (slide, tumpang tindih, dan pertukaran), tetapi ini umumnya tergantung platform. Anda dapat mengatur MasterDetailBehavior properti ke MasterDetailPage anggota MasterBehavior enumerasi:

Namun, properti ini tidak berpengaruh pada ponsel. Telepon selalu memiliki perilaku popover. Hanya tablet dan jendela desktop yang dapat memiliki perilaku terpisah.

Menjelajahi Perilaku

Sampel MasterDetailBehaviors memungkinkan Anda untuk bereksperimen dengan perilaku default pada perangkat yang berbeda. Program ini berisi dua turunan terpisah ContentPage untuk master dan detail (dengan properti yang Title ditetapkan pada keduanya), dan kelas lain yang berasal dari MasterDetailPage yang menggabungkannya. Halaman detail diapit dalam NavigationPage karena program UWP tidak akan berfungsi tanpanya.

Platform Windows 8.1 dan Windows Telepon 8.1 mengharuskan bitmap diatur ke Icon properti halaman master.

Kembali ke Sekolah

Sampel SchoolAndDetail mengambil pendekatan yang agak berbeda untuk membangun program untuk menampilkan siswa dari pustaka SchoolOfFineArt.

Properti Master dan Detail didefinisikan dengan pohon visual dalam file SchoolAndDetailPage.xaml , yang berasal dari MasterDetailPage. Pengaturan ini memungkinkan pengikatan data diatur antara halaman master dan detail.

File XAML itu IsPresented juga mengatur properti ke MasterDetailPageTrue. Ini menyebabkan halaman master ditampilkan saat startup; secara default halaman detail ditampilkan. File SchoolAndDetailPage.xaml.cs diatur IsPresented ke false saat item dipilih dari ListView halaman master. Halaman detail kemudian ditampilkan:

Cuplikan layar tiga kali sekolah dan detail

Antarmuka pengguna Anda sendiri

Meskipun Xamarin.Forms menyediakan antarmuka pengguna untuk beralih antara tampilan master dan detail, Anda dapat menyediakannya sendiri. Untuk melakukannya:

  • Atur properti ke IsGestureEnabledfalse untuk menonaktifkan penggeseran
  • Ambil alih ShouldShowToolbarButton metode dan kembali false untuk menyembunyikan tombol toolbar pada Windows 8.1 dan Windows Telepon 8.1.

Anda kemudian harus menyediakan sarana untuk beralih antara halaman master dan detail, seperti yang ditunjukkan oleh sampel ColorsDetail.

Sampel MasterDetailTaps menunjukkan pendekatan lain menggunakan TapGestureRecognizer pada halaman master dan detail.

TabbedPage

TabbedPage adalah kumpulan halaman yang dapat Anda alihkan di antara menggunakan tab. Ini berasal dari MultiPage<Page> dan mendefinisikan tidak ada properti publik atau metodenya sendiri. MultiPage<T>, namun, menentukan properti:

Anda mengisi koleksi ini Children dengan objek halaman.

Pendekatan lain memungkinkan Anda untuk menentukan TabbedPage anak-anak seperti ListView menggunakan dua properti ini yang menghasilkan halaman bertab secara otomatis:

Namun, pendekatan ini tidak berfungsi dengan baik di iOS ketika koleksi berisi lebih dari beberapa item.

MultiPage<T> menentukan dua properti lagi yang memungkinkan Anda melacak halaman mana yang saat ini dilihat:

MultiPage<T> juga mendefinisikan dua peristiwa:

Halaman tab diskrit

Sampel DiscreteTabbedColors terdiri dari tiga halaman bertab yang menampilkan warna dengan tiga cara berbeda. Setiap tab adalah ContentPage turunan, dan kemudian TabbedPage DiscreteTabbedColorsPage.xaml turunan menggabungkan tiga halaman.

Untuk setiap halaman yang muncul di TabbedPage, Title properti diperlukan untuk menentukan teks di tab, dan Apple Store juga mengharuskan ikon digunakan, sehingga Icon properti diatur untuk iOS:

Cuplikan layar tiga kali dari Warna Bertab Diskrit

Sampel StudentNotes memiliki beranda yang mencantumkan semua siswa. Ketika siswa diketuk, ini menavigasi ke TabbedPage turunan, StudentNotesDataPage, yang menggabungkan tiga ContentPage objek di pohon visualnya, salah satunya memungkinkan memasukkan beberapa catatan untuk siswa tersebut.

Menggunakan ItemTemplate

Sampel MultiTabbedColor menggunakan NamedColor kelas di Xamarin.Formspustaka Book.Toolkit. File MultiTabbedColorsPage.xaml mengatur DataTemplate properti ke TabbedPage pohon visual yang dimulai dengan ContentPage yang berisi pengikatan ke properti NamedColor (termasuk pengikatan ke Title properti ).

Namun, ini bermasalah di iOS. Hanya beberapa item yang dapat ditampilkan, dan tidak ada cara yang baik untuk memberinya ikon.