Ringkasan Bab 15. Antarmuka interaktif
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.
Bab ini mengeksplorasi delapan View
turunan yang memungkinkan interaksi dengan pengguna.
Lihat gambaran umum
Xamarin.Forms berisi 20 kelas instans yang berasal dari View
tetapi tidak Layout
. Enam di antaranya telah dibahas dalam bab-bab sebelumnya:
Label
: Bab 2. Anatomi aplikasiBoxView
: Bab 3. Menggulir tumpukanButton
: Bab 6. Klik tombolImage
: Bab 13. BitmapActivityIndicator
: Bab 13. BitmapProgressBar
: Bab 14. AbsoluteLayout
Delapan tampilan dalam bab ini secara efektif memungkinkan pengguna berinteraksi dengan jenis data .NET dasar:
Jenis Data | Tampilan |
---|---|
Double |
Slider , Stepper |
Boolean |
Switch |
String |
Entry , , Editor SearchBar |
DateTime |
DatePicker , TimePicker |
Anda dapat menganggap tampilan ini sebagai representasi interaktif visual dari jenis data yang mendasar. Konsep ini dieksplorasi lebih lanjut pada bab berikutnya, Bab 16. Pengikatan data.
Enam tampilan tersisa tercakup dalam bab-bab berikut:
WebView
: Bab 16. Pengikatan dataPicker
: Bab 19. Tampilan koleksiListView
: Bab 19. Tampilan koleksiTableView
: Bab 19. Tampilan koleksiMap
: Bab 28. Lokasi dan PetaOpenGLView
: Tidak tercakup dalam buku ini (dan tidak ada dukungan untuk platform Windows)
Penggunjuk dan stepper
Baik Slider
dan Stepper
izinkan pengguna untuk memilih nilai numerik dari rentang. Slider
adalah rentang berkelanjutan sementara Stepper
melibatkan nilai diskrit.
Dasar-dasar pengguncuran
Slider
adalah bilah horizontal yang mewakili rentang nilai dari minimum di sebelah kiri ke maksimum di sebelah kanan. Ini mendefinisikan tiga properti publik:
Value
jenisdouble
, nilai default 0Minimum
jenisdouble
, nilai default 0Maximum
jenisdouble
, nilai default 1
Properti yang dapat diikat yang mendukung properti ini memastikan bahwa properti tersebut konsisten:
- Untuk ketiga properti,
coerceValue
metode yang ditentukan untuk properti yang dapat diikat memastikan antaraValue
Minimum
danMaximum
. - Metode
validateValue
padaMinimumProperty
mengembalikanfalse
jikaMinimum
diatur ke nilai yang lebih besar dari atau sama denganMaximum
, dan serupa untukMaximumProperty
.false
Mengembalikan darivalidateValue
metode menyebabkan dinaikkanArgumentException
.
Slider
ValueChanged
mengaktifkan peristiwa dengan ValueChangedEventArgs
argumen ketika Value
properti berubah, baik secara terprogram atau ketika pengguna memanipulasi Slider
.
Sampel SliderDemo menunjukkan penggunaan sederhana dari Slider
.
Jebakan umum
Baik dalam kode maupun di XAML, Minimum
properti dan Maximum
diatur dalam urutan yang Anda tentukan. Pastikan untuk menginisialisasi properti ini sehingga Maximum
selalu lebih besar dari Minimum
. Jika tidak, pengecualian akan diajukan.
Menginisialisasi Slider
properti dapat menyebabkan Value
properti berubah dan ValueChanged
peristiwa diaktifkan. Anda harus memastikan bahwa penanganan Slider
aktivitas tidak mengakses tampilan yang belum dibuat selama inisialisasi halaman.
Peristiwa ValueChanged
tidak diaktifkan selama Slider
inisialisasi kecuali Value
properti berubah. Anda dapat memanggil ValueChanged
handler langsung dari kode.
Pilihan warna pengguncuran
Program RgbSliders berisi tiga Slider
elemen yang memungkinkan Anda memilih warna secara interaktif dengan menentukan nilai RGB-nya:
Sampel TextFade menggunakan dua Slider
elemen untuk memindahkan dua Label
elemen di seluruh AbsoluteLayout
dan memudar satu ke elemen lainnya.
Perbedaan Stepper
menentukan Stepper
properti dan peristiwa yang sama seperti Slider
tetapi properti diinisialisasi Maximum
ke 100 dan Stepper
menentukan properti keempat:
Increment
jenisdouble
, diinisialisasi ke 1
Secara visual, Stepper
terdiri dari dua tombol berlabel - dan +. Menekan – berkurang Value
Increment
hingga minimum Minimum
. Menekan + meningkat Value
hingga Increment
maksimum Maximum
.
Ini ditunjukkan oleh sampel StepperDemo.
Beralih dan Kotak Centang
memungkinkan Switch
pengguna untuk menentukan nilai Boolean.
Beralih dasar-dasar
Secara visual, Switch
terdiri dari tombol yang dapat dinonaktifkan dan diaktifkan. Kelas mendefinisikan satu properti:
IsToggled
dari jenisbool
Switch
mendefinisikan satu peristiwa:
Toggled
disertai denganToggledEventArgs
objek, diaktifkan saatIsToggled
properti berubah.
Program SwitchDemo menunjukkan Switch
.
Kotak Centang tradisional
Beberapa pengembang mungkin lebih suka yang lebih tradisional CheckBox
daripada Switch
. Pustaka Xamarin.FormsBook.Toolkit berisi CheckBox
kelas yang berasal dari ContentView
. CheckBox
diimplementasikan oleh file CheckBox.xaml dan CheckBox.xaml.cs . CheckBox
mendefinisikan tiga properti (Text
, , dan IsChecked
) dan suatu CheckedChanged
FontSize
peristiwa.
Sampel CheckBoxDemo menunjukkan ini CheckBox
.
Mengetik teks
Xamarin.Forms menentukan tiga tampilan yang memungkinkan pengguna memasukkan dan mengedit teks:
Entry
untuk satu baris teksEditor
untuk beberapa baris teksSearchBar
untuk satu baris teks untuk tujuan pencarian.
Entry
dan Editor
berasal dari InputView
, yang berasal dari View
. SearchBar
berasal langsung dari View
.
Keyboard dan fokus
Pada ponsel dan tablet tanpa keyboard fisik, Entry
elemen , , Editor
dan SearchBar
semuanya menyebabkan keyboard virtual muncul. Kehadiran keyboard ini pada layar terkait dengan fokus input. Tampilan harus memiliki IsVisible
properti dan IsEnabled
yang diatur ke untuk true
mendapatkan fokus input.
Dua metode, satu properti baca-saja, dan dua peristiwa terlibat dengan fokus input. Ini semua didefinisikan oleh VisualElement
:
- Metode
Focus
ini mencoba mengatur fokus input ke elemen dan mengembalikantrue
jika berhasil - Metode
Unfocus
menghapus fokus input dari elemen - Properti
IsFocused
baca-saja menunjukkan apakah elemen memiliki fokus input - Peristiwa menunjukkan
Focused
kapan elemen mendapatkan fokus input - Peristiwa
Unfocused
menunjukkan kapan elemen kehilangan fokus input
Memilih Keyboard
Kelas InputView
dari mana Entry
dan Editor
turunan hanya mendefinisikan satu properti:
Ini menunjukkan jenis keyboard yang ditampilkan. Beberapa keyboard dioptimalkan untuk URI atau angka.
Kelas Keyboard
memungkinkan penentuan keyboard dengan metode statis Keyboard.Create
dengan argumen jenis KeyboardFlags
, enumerasi dengan bendera bit berikut:
None
atur ke 0CapitalizeSentence
atur ke 1Spellcheck
atur ke 2Suggestions
atur ke 4All
atur ke \xFFFFFFFF
Saat menggunakan multibaris Editor
saat paragraf atau lebih teks diharapkan, panggilan Keyboard.Create
adalah pendekatan yang baik untuk memilih keyboard. Untuk baris Entry
tunggal , properti Keyboard
baca-saja statis berikut berguna:
KeyboardTypeConverter
memungkinkan menentukan properti ini di XAML seperti yang ditunjukkan oleh program EntryKeyboards.
Properti entri dan peristiwa
Baris Entry
tunggal menentukan properti berikut:
Text
jenisstring
, teks yang muncul diEntry
TextColor
dari jenisColor
FontFamily
dari jenisstring
FontSize
dari jenisdouble
FontAttributes
dari jenisFontAttributes
IsPassword
jenisbool
, yang menyebabkan karakter diselubungiPlaceholder
jenisstring
, untuk teks berwarna redup yang muncul di sebelum apa pun diEntry
ketikPlaceholderColor
dari jenisColor
juga Entry
mendefinisikan dua peristiwa:
TextChanged
TextChangedEventArgs
dengan objek, diaktifkan setiap kaliText
properti berubahCompleted
, diaktifkan ketika pengguna selesai dan keyboard dimatikan. Pengguna menunjukkan penyelesaian dengan cara khusus platform
Sampel QuadraticEquations menunjukkan dua peristiwa ini.
Perbedaan Editor
Multibaris Editor
mendefinisikan properti dan Font
yang sama Text
tetapi Entry
bukan properti lainnya. Editor
juga mendefinisikan dua properti yang sama dengan Entry
.
JustNotes adalah program pembuatan catatan bentuk bebas yang menyimpan dan memulihkan konten Editor
.
Bilah Pencarian
SearchBar
tidak berasal dari InputView
, sehingga tidak memiliki Keyboard
properti. Tetapi ia memiliki semua Text
properti , , Font
dan Placeholder
yang Entry
mendefinisikan. Selain itu, SearchBar
menentukan tiga properti tambahan:
CancelButtonColor
dari jenisColor
SearchCommand
jenisICommand
untuk digunakan dengan pengikatan data dan MVVMSearchCommandParameter
jenisObject
, untuk digunakan denganSearchCommand
Tombol batal khusus platform menghapus teks. juga SearchBar
memiliki tombol pencarian khusus platform. Menekan salah satu tombol tersebut akan memunculkan salah satu dari dua peristiwa yang SearchBar
menentukan:
TextChanged
disertai denganTextChangedEventArgs
objekSearchButtonPressed
Sampel SearchBarDemo menunjukkan SearchBar
.
Pilihan tanggal dan waktu
Tampilan DatePicker
dan TimePicker
menerapkan kontrol khusus platform yang memungkinkan pengguna menentukan tanggal atau waktu.
Pemicu Tanggal
DatePicker
menentukan empat properti:
MinimumDate
jenisDateTime
, diinisialisasi ke 1 Januari 1900MaximumDate
jenisDateTime
, diinisialisasi ke 31 Desember 2100Date
jenisDateTime
, diinisialisasi keDateTime.Today
Format
jenisstring
, string pemformatan .NET diinisialisasi ke "d", pola tanggal pendek, menghasilkan tampilan tanggal seperti "20/7/1969" di AS.
Anda dapat mengatur DateTime
properti di XAML dengan mengekspresikan properti sebagai elemen properti dan menggunakan format tanggal pendek yang invarian budaya ("20/7/1969").
Sampel DaysBetweenDates menghitung jumlah hari antara dua tanggal yang dipilih oleh pengguna.
TimePicker (atau timeSpanPicker?)
TimePicker
mendefinisikan dua properti dan tanpa peristiwa:
Time
berjenisTimeSpan
daripadaDateTime
, menunjukkan waktu berlalu sejak tengah malamFormat
jenisstring
, string pemformatan .NET diinisialisasi ke "t", pola waktu singkat, menghasilkan tampilan waktu seperti "1:45 PM" di AS.
Program SetTimer menunjukkan cara menggunakan TimePicker
untuk menentukan waktu untuk timer. Program ini hanya berfungsi jika Anda menyimpannya di latar depan.
SetTimer juga menunjukkan menggunakan DisplayAlert
metode Page
untuk menampilkan kotak pemberitahuan.