Podsumowanie rozdziału 15. Interfejs interaktywny
Uwaga
Ta książka została opublikowana wiosną 2016 roku i od tego czasu nie została zaktualizowana. Jest wiele w książce, która pozostaje cenna, ale niektóre materiały są nieaktualne, a niektóre tematy nie są już całkowicie poprawne ani kompletne.
W tym rozdziale omówiono osiem View
pochodnych, które umożliwiają interakcję z użytkownikiem.
Przegląd widoku
Xamarin.Forms zawiera 20 wystąpień klas, które pochodzą z View
klasy , ale nie Layout
. Sześć z nich zostało omówionych w poprzednich rozdziałach:
Label
: rozdział 2. Anatomia aplikacjiBoxView
: rozdział 3. Przewijanie stosuButton
: rozdział 6. Kliknięcia przyciskuImage
: rozdział 13. Mapy bitoweActivityIndicator
: rozdział 13. Mapy bitoweProgressBar
: rozdział 14. Bezwzględna nakładka
Osiem widoków w tym rozdziale skutecznie umożliwia użytkownikowi interakcję z podstawowymi typami danych platformy .NET:
Typ danych | Widoki |
---|---|
Double |
Slider , Stepper |
Boolean |
Switch |
String |
Entry , , Editor SearchBar |
DateTime |
DatePicker , TimePicker |
Te widoki można traktować jako wizualne interaktywne reprezentacje bazowych typów danych. Ta koncepcja została omówiona bardziej w następnym rozdziale rozdział 16. Powiązanie danych.
Pozostałe sześć poglądów opisano w następujących rozdziałach:
WebView
: rozdział 16. Powiązanie danychPicker
: rozdział 19. Widoki kolekcjiListView
: rozdział 19. Widoki kolekcjiTableView
: rozdział 19. Widoki kolekcjiMap
: rozdział 28. Lokalizacja i mapyOpenGLView
: Nie omówiono w tej książce (i brak obsługi platform systemu Windows)
Suwak i krokowy
Zarówno Slider
, jak i Stepper
zezwala użytkownikowi na wybranie wartości liczbowej z zakresu. Jest Slider
to ciągły zakres, podczas gdy Stepper
element obejmuje wartości dyskretne.
Podstawy suwaka
Jest Slider
to poziomy pasek reprezentujący zakres wartości od minimum po lewej stronie do maksymalnej po prawej stronie. Definiuje trzy właściwości publiczne:
Value
typudouble
, wartość domyślna 0Minimum
typudouble
, wartość domyślna 0Maximum
typudouble
, wartość domyślna 1
Właściwości, które są powiązane z tymi właściwościami, upewnij się, że są spójne:
- Dla wszystkich trzech właściwości metoda określona
coerceValue
dla właściwości możliwej do powiązania gwarantuje, żeValue
jest to międzyMinimum
iMaximum
. validateValue
Metoda w funkcjiMinimumProperty
zwracafalse
wartość , jeśliMinimum
jest ustawiona na wartość większą lub równąMaximum
, i podobną dla parametruMaximumProperty
. Zwracaniefalse
zvalidateValue
metody powoduje, że elementArgumentException
jest zgłaszany.
Slider
ValueChanged
uruchamia zdarzenie z argumentemValueChangedEventArgs
, gdy Value
właściwość ulegnie zmianie programowo lub gdy użytkownik manipuluje elementem Slider
.
W przykładzie SliderDemo pokazano proste użycie elementu Slider
.
Typowe pułapki
Zarówno w kodzie, jak i w języku XAML właściwości Minimum
i Maximum
są ustawiane w określonej kolejności. Pamiętaj, aby zainicjować te właściwości, Maximum
aby zawsze były większe niż Minimum
. W przeciwnym razie zostanie zgłoszony wyjątek.
Inicjowanie Slider
właściwości może spowodować zmianę Value
właściwości i ValueChanged
wyzwolenie zdarzenia. Upewnij się, że Slider
program obsługi zdarzeń nie uzyskuje dostępu do widoków, które nie zostały jeszcze utworzone podczas inicjowania strony.
Zdarzenie ValueChanged
nie jest uruchamiane podczas Slider
inicjowania, chyba że Value
właściwość ulegnie zmianie. Program obsługi można wywołać ValueChanged
bezpośrednio z kodu.
Wybór koloru suwaka
Program RgbSliders zawiera trzy Slider
elementy, które pozwalają interaktywnie wybrać kolor, określając jego wartości RGB:
Przykład TextFade używa dwóch Slider
elementów, aby przenieść dwa Label
elementy między elementami AbsoluteLayout
i zanikać jeden do drugiego.
Różnica kroków
Definiuje Stepper
te same właściwości i zdarzenia co Slider
właściwość, ale Maximum
właściwość jest inicjowana na 100 i Stepper
definiuje czwartą właściwość:
Increment
typudouble
, zainicjowany do 1
Wizualnie element Stepper
składa się z dwóch przycisków oznaczonych etykietami : i +. Naciśnięcie Value
Increment
— zmniejsza się do minimum .Minimum
Naciśnięcie + Value
Increment
przycisku zwiększa się do maksymalnej wartości .Maximum
Jest to pokazane przez przykład StepperDemo.
Przełączanie i pole wyboru
Ustawienie Switch
umożliwia użytkownikowi określenie wartości logicznej.
Podstawy przełączania
Wizualnie element Switch
składa się z przełącznika, który można wyłączyć i włączyć. Klasa definiuje jedną właściwość:
IsToggled
typubool
Switch
definiuje jedno zdarzenie:
Toggled
wraz z obiektemToggledEventArgs
, wyzwolony poIsToggled
zmianie właściwości.
Program SwitchDemo demonstruje element Switch
.
Tradycyjna skrzynka kontrolna
Niektórzy deweloperzy mogą preferować bardziej tradycyjną metodę CheckBox
.Switch
Biblioteka Xamarin.FormsBook.Toolkit zawiera klasę pochodzącą CheckBox
z klasy ContentView
. CheckBox
jest implementowany przez pliki CheckBox.xaml i CheckBox.xaml.cs . CheckBox
definiuje trzy właściwości (Text
, FontSize
, i IsChecked
) i CheckedChanged
zdarzenie.
Przykład CheckBoxDemo pokazuje ten element CheckBox
.
Wpisywanie tekstu
Xamarin.Forms definiuje trzy widoki, które umożliwiają użytkownikowi wprowadzanie i edytowanie tekstu:
Entry
dla pojedynczego wiersza tekstuEditor
dla wielu wierszy tekstuSearchBar
dla pojedynczego wiersza tekstu do celów wyszukiwania.
Entry
i Editor
pochodzą z InputView
klasy , która pochodzi z View
klasy . SearchBar
pochodzi bezpośrednio z View
klasy .
Klawiatura i fokus
Na telefonach i tabletach bez klawiatur fizycznych Entry
elementy , Editor
i SearchBar
powodują wyskakujące okienko klawiatury wirtualnej. Obecność tej klawiatury na ekranie jest związana z fokusem wejściowym. Widok musi mieć zarówno jego właściwości, IsVisible
jak i IsEnabled
, aby true
uzyskać fokus danych wejściowych.
Dwie metody, jedna właściwość tylko do odczytu i dwa zdarzenia są związane z fokusem wejściowym. Wszystkie te wartości są definiowane przez program VisualElement
:
- Metoda
Focus
próbuje ustawić fokus danych wejściowych na element i zwracatrue
wartość w przypadku powodzenia - Metoda
Unfocus
usuwa fokus wejściowy z elementu - Właściwość
IsFocused
tylko do odczytu wskazuje, czy element ma fokus wejściowy - Zdarzenie
Focused
wskazuje, kiedy element pobiera fokus danych wejściowych - Zdarzenie
Unfocused
wskazuje, kiedy element traci fokus wejściowy
Wybieranie klawiatury
Klasa InputView
, z której Entry
i Editor
pochodzą, definiuje tylko jedną właściwość:
Wskazuje to typ wyświetlanej klawiatury. Niektóre klawiatury są zoptymalizowane pod kątem identyfikatorów URI lub liczb.
Klasa Keyboard
umożliwia zdefiniowanie klawiatury za pomocą metody statycznej Keyboard.Create
z argumentem typu KeyboardFlags
, wyliczenie z następującymi flagami bitowymi:
None
ustaw wartość 0CapitalizeSentence
ustaw wartość 1Spellcheck
ustaw wartość 2Suggestions
ustaw wartość 4All
ustaw wartość \xFFFFFFFF
W przypadku używania wielowierszowego Editor
, gdy oczekiwano akapitu lub większej liczby tekstu, wywołanie Keyboard.Create
jest dobrym podejściem do wybierania klawiatury. W przypadku pojedynczego wiersza Entry
przydatne są następujące statyczne właściwości Keyboard
tylko do odczytu:
Default
Text
Chat
Url
Email
Telephone
Numeric
dla liczb dodatnich z lub bez separatora dziesiętnego.
Umożliwia KeyboardTypeConverter
określenie tych właściwości w języku XAML, jak pokazano w programie EntryKeyboards .
Właściwości i zdarzenia wpisu
Pojedynczy wiersz Entry
definiuje następujące właściwości:
Text
typustring
, tekst wyświetlany w obiekcieEntry
TextColor
typuColor
FontFamily
typustring
FontSize
typudouble
FontAttributes
typuFontAttributes
IsPassword
typubool
, co powoduje, że znaki mają być maskowanePlaceholder
typustring
, dla przyciemnionego tekstu wyświetlanegoEntry
przed wpisaniem czegokolwiekPlaceholderColor
typuColor
Definiuje Entry
również dwa zdarzenia:
TextChanged
z obiektemTextChangedEventArgs
, wyzwalany za każdym razem, gdyText
właściwość ulegnie zmianieCompleted
, wyzwolony po zakończeniu pracy użytkownika, a klawiatura zostanie odrzucona. Użytkownik wskazuje ukończenie w sposób specyficzny dla platformy
W przykładzie QuadraticEquations pokazano te dwa zdarzenia.
Różnica w edytorze
Wielowierszowy Editor
definiuje te same Text
właściwości i Font
co Entry
, ale nie inne właściwości. Editor
Definiuje również te same dwie właściwości co Entry
.
JustNotes to dowolny program do tworzenia notatek, który zapisuje i przywraca zawartość pliku Editor
.
Pasek wyszukiwania
Obiekt SearchBar
nie pochodzi z InputView
klasy , więc nie ma Keyboard
właściwości . Ale ma wszystkie Text
właściwości , Font
i Placeholder
, które Entry
definiują. Ponadto SearchBar
definiuje trzy dodatkowe właściwości:
CancelButtonColor
typuColor
SearchCommand
typuICommand
do użycia z powiązaniami danych i MVVMSearchCommandParameter
typuObject
, do użycia zSearchCommand
Przycisk anulowania specyficznego dla platformy usuwa tekst. Obiekt SearchBar
ma również przycisk wyszukiwania specyficznego dla platformy. Naciśnięcie jednego z tych przycisków powoduje wywołanie jednego z dwóch zdarzeń, które SearchBar
definiuje:
TextChanged
obiekt, któremu towarzyszyTextChangedEventArgs
SearchButtonPressed
Przykład SearchBarDemo przedstawia element SearchBar
.
Wybór daty i godziny
Widoki DatePicker
i TimePicker
implementują kontrolki specyficzne dla platformy, które umożliwiają użytkownikowi określenie daty lub godziny.
The DatePicker
DatePicker
definiuje cztery właściwości:
MinimumDate
typuDateTime
, zainicjowany do 1 stycznia 1900 r.MaximumDate
typuDateTime
, zainicjowany do 31 grudnia 2100 r.Date
typuDateTime
, zainicjowany naDateTime.Today
Format
typustring
, ciąg formatowania platformy .NET zainicjowany na "d", wzorzec daty krótkiej, co powoduje wyświetlenie daty, takiej jak "7/20/1969" w Stanach Zjednoczonych.
Właściwości w języku XAML można ustawić DateTime
, wyrażając właściwości jako elementy właściwości i używając niezmiennego formatu daty krótkiej kultury ("7/20/1969").
Przykład DaysBetweenDates oblicza liczbę dni między dwiema datami wybranymi przez użytkownika.
TimePicker (lub czy jest to timeSpanPicker?)
TimePicker
definiuje dwie właściwości i brak zdarzeń:
Time
jest typuTimeSpan
, a nieDateTime
, wskazując czas, który upłynął od północyFormat
typustring
, ciąg formatowania platformy .NET zainicjowany na "t", wzorzec krótkiego czasu, co powoduje wyświetlenie czasu, takiego jak "1:45 PM" w Stanach Zjednoczonych.
Program SetTimer pokazuje, jak używać parametru TimePicker
, aby określić czasomierza. Program działa tylko wtedy, gdy zachowasz go na pierwszym planie.
Program SetTimer demonstruje również użycie DisplayAlert
metody Page
w celu wyświetlenia pola alertu.