Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Jest Button to widok, który umożliwia użytkownikowi zainicjowanie polecenia. Element A Button jest identyfikowany tekstem (i opcjonalnie obrazem pokazanym w rozdziale 13 mapy bitowe). Button W związku z tym definiuje wiele tych samych właściwości co Label:
Button Definiuje również trzy właściwości, które zarządzają wyglądem granicy, ale wsparcie tych właściwości i ich wzajemnej niezależności jest specyficzne dla platformy:
BorderColortypuColorBorderWidthtypuDoubleBorderRadiustypuDouble
Button Dziedziczy również wszystkie właściwości VisualElement elementów i View, w tym BackgroundColor, HorizontalOptionsi VerticalOptions.
Przetwarzanie kliknięcia
Klasa Button definiuje Clicked zdarzenie, które jest wyzwalane, gdy użytkownik naciągnie Buttonelement . Procedura Click obsługi jest typu EventHandler. Pierwszym argumentem Button jest obiekt generujący zdarzenie; drugi argument jest obiektem EventArgs , który nie zawiera dodatkowych informacji.
Przykład ButtonLogger demonstruje prostą Clicked obsługę.
Klikanie przycisku Udostępniania
Wiele Button widoków może współdzielić tę samą Clicked procedurę obsługi, ale program obsługi zazwyczaj musi określić, który Button z nich jest odpowiedzialny za określone zdarzenie. Jednym z podejść jest przechowywanie różnych Button obiektów jako pól i sprawdzenie, który z nich wyzwala zdarzenie w procedurze obsługi.
W przykładzie TwoButtons przedstawiono tę technikę. Program pokazuje również, jak ustawić IsEnabled właściwość na Button false wartość , gdy naciśnięcie Button nie jest już prawidłowe. Wyłączone Button nie generuje Clicked zdarzenia.
Anonimowe programy obsługi zdarzeń
Można zdefiniować Clicked programy obsługi jako anonimowe funkcje lambda, jak pokazano w przykładzie ButtonLambdas . Nie można jednak udostępniać anonimowych procedur obsługi bez niechlujny kod odbicia.
Rozróżnianie widoków przy użyciu identyfikatorów
Można również wyróżnić wiele Button obiektów, ustawiając StyleId właściwość lub AutomationId właściwość na stringwartość . Ta właściwość jest definiowana przez Element program , ale nie jest używana w programie Xamarin.Forms. Ma być używany wyłącznie przez programy aplikacji.
Przykład SimplestKeypad używa tej samej procedury obsługi zdarzeń dla wszystkich 10 kluczy liczbowych na klawiaturze liczbowej i rozróżnia między nimi StyleId właściwość :
Zapisywanie danych przejściowych
Wiele aplikacji musi zapisywać dane po zakończeniu działania programu i ponownie załadować te dane po ponownym uruchomieniu programu. Klasa Application definiuje kilka elementów członkowskich, które ułatwiają programowi zapisywanie i przywracanie danych przejściowych:
- Właściwość
Propertiesjest słownikiem z kluczami iobjectelementamistring. Zawartość słownika jest automatycznie zapisywana w magazynie lokalnym aplikacji przed zakończeniem działania programu i ładowana ponownie po uruchomieniu programu. - Klasa
Applicationdefiniuje trzy chronione metody wirtualne, które standardowaAppklasa programu zastępuje:OnStart,OnSleepiOnResume. Odnoszą się one do zdarzeń cyklu życia aplikacji. - Metoda
SavePropertiesAsynczapisuje zawartość słownika.
Nie jest konieczne wywołanie metody SavePropertiesAsync. Zawartość słownika jest automatycznie zapisywana przed zakończeniem programu i pobierana przed uruchomieniem programu. Jest to przydatne podczas testowania programu, aby zapisać dane, jeśli program ulegnie awarii.
Przydatne są również następujące opisano:
Application.Current, właściwość statyczna zwracająca bieżącyApplicationobiekt, którego można następnie użyć do uzyskania słownikaProperties.
Pierwszym krokiem jest zidentyfikowanie wszystkich zmiennych na stronie, które mają być utrwalane po zakończeniu działania programu. Jeśli znasz wszystkie miejsca, w których te zmienne się zmieniają, możesz po prostu dodać je do słownika Properties w tym momencie. W konstruktorze strony można ustawić zmienne ze Properties słownika, jeśli klucz istnieje.
Większy program prawdopodobnie będzie musiał obsługiwać zdarzenia cyklu życia aplikacji. Najważniejszą OnSleep metodą jest. Wywołanie tej metody wskazuje, że program opuścił pierwszy plan. Być może użytkownik nacisnął przycisk Strona główna na urządzeniu lub wyświetlił wszystkie aplikacje lub zamyka telefon. Wywołanie metody to OnSleep jedyne powiadomienie odbierane przez program przed jego zakończeniem. Program powinien skorzystać z tej okazji, aby upewnić się, że Properties słownik jest aktualny.
Wywołanie OnResume wskazujące, że program nie zakończył wykonywania ostatniego wywołania, OnSleep ale jest teraz uruchomiony na pierwszym planie ponownie. Program może skorzystać z tej okazji do odświeżenia połączeń internetowych (na przykład).
Wywołanie wykonywane OnStart podczas uruchamiania programu. Nie trzeba czekać na wywołanie tej metody w celu uzyskania dostępu do słownika Properties , ponieważ zawartość została już przywrócona po wywołaniu konstruktora App .
Przykład PersistentKeypad jest bardzo podobny do SimplestKeypad, z tą różnicą, że program używa OnSleep przesłonięcia w celu zapisania bieżącego wpisu klawiatury i konstruktora strony w celu przywrócenia tych danych.
Uwaga
Innym podejściem do zapisywania ustawień programu jest klasa Xamarin.EssentialsPreferencje .
