Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Tato kniha byla publikována na jaře roku 2016 a od té doby nebyla aktualizována. Existuje mnoho v knize, která zůstává cenná, ale některé materiály jsou zastaralé a některá témata už nejsou zcela správná nebo úplná.
Toto Button je zobrazení, které uživateli umožňuje inicializovat příkaz. A Button je identifikován textem (a volitelně i obrázkem, jak je znázorněno v kapitole 13, Rastrové obrázky). V důsledku toho Button definuje mnoho stejných vlastností jako Label:
Button definuje také tři vlastnosti, které řídí vzhled jeho hranice, ale podpora těchto vlastností a jejich vzájemné nezávislosti je specifická pro platformu:
BorderColortypuColorBorderWidthtypuDoubleBorderRadiustypuDouble
Button také dědí všechny vlastnosti VisualElement a View, včetně BackgroundColor, HorizontalOptionsa VerticalOptions.
Zpracování kliknutí
Třída Button definuje Clicked událost, která se aktivuje, když uživatel klepne na Button. Obslužná rutina Click je typu EventHandler. Prvním argumentem Button je objekt generující událost. Druhým argumentem EventArgs je objekt, který neposkytuje žádné další informace.
Ukázka ButtonLoggeru demonstruje jednoduché Clicked zpracování.
Kliknutí na tlačítko Sdílení
Stejnou obslužnou Clicked rutinu může sdílet více Button zobrazení, ale obslužná rutina obvykle potřebuje určit, která Button událost je zodpovědná. Jedním z přístupů je uložit různé Button objekty jako pole a zkontrolovat, která událost se spouští v obslužné rutině.
Ukázka TwoButtons ukazuje tuto techniku. Program také ukazuje, jak nastavit IsEnabled vlastnost Button na false hodnotu při stisknutí Button již není platné. Zakázáno Button negeneruje Clicked událost.
Anonymní obslužné rutiny událostí
Je možné definovat Clicked obslužné rutiny jako anonymní funkce lambda, jak ukazuje ukázka ButtonLambdas. Anonymní obslužné rutiny se ale nedají sdílet bez nějakého neuspořádaný kód reflexe.
Rozlišování zobrazení pomocí ID
Více Button objektů lze také odlišit nastavením StyleId vlastnosti nebo AutomationId vlastnosti na hodnotu string. Tato vlastnost je definována Element , ale není použita v rámci Xamarin.Forms. Má být používán výhradně aplikacemi.
Ukázka NejjednoduššíKeypad používá stejnou obslužnou rutinu události pro všech 10 číselných klíčů na numerické klávesnici a rozlišuje mezi nimi s StyleId vlastností:
Ukládání přechodných dat
Mnoho aplikací potřebuje ukládat data při ukončení programu a znovu načíst tato data při opětovném spuštění programu. Třída Application definuje několik členů, které pomáhají programu ukládat a obnovovat přechodná data:
- Vlastnost
Propertiesje slovník s klíči aobjectpoložkamistring. Obsah slovníku se před ukončením programu automaticky uloží do místního úložiště aplikace a při spuštění programu se znovu načte. - Třída
Applicationdefinuje tři chráněné virtuální metody, které standardníApptřída programu přepíše:OnStart,OnSleepaOnResume. Tyto události se týkají událostí životního cyklu aplikace. - Metoda
SavePropertiesAsynculoží obsah slovníku.
Není nutné volat SavePropertiesAsync. Obsah slovníku se před ukončením programu automaticky uloží a načte se před spuštěním programu. Při testování programu je užitečné ukládat data, pokud program selže.
Užitečné je také:
Application.Current, statická vlastnost, která vrací aktuálníApplicationobjekt, který pak můžete použít k získání slovníkuProperties.
Prvním krokem je identifikace všech proměnných na stránce, kterou chcete zachovat při ukončení programu. Pokud znáte všechna místa, kde se tyto proměnné mění, můžete je v tomto okamžiku jednoduše přidat do slovníku Properties . V konstruktoru stránky můžete nastavit proměnné ze slovníku Properties , pokud klíč existuje.
Větší program bude pravděpodobně muset řešit události životního cyklu aplikace. Nejdůležitější je OnSleep metoda. Volání této metody označuje, že program opustil popředí. Uživatel možná na zařízení stiskl tlačítko Domů nebo zobrazil všechny aplikace nebo vypne telefon. Jediným oznámením, které program obdrží před ukončením, je volání OnSleep . Program by měl tuto příležitost využít, aby byl Properties slovník aktuální.
Volání, které OnResume označuje, že program se neukončil po posledním volání, OnSleep ale nyní běží znovu v popředí. Program může tuto příležitost využít k aktualizaci připojení k internetu (například).
Při spuštění programu dojde k OnStart volání. Není nutné čekat na volání této metody pro přístup ke slovníku Properties , protože obsah již byl obnoven při volání konstruktoru App .
Ukázka PersistentKeypad je velmi podobná NejjednoduššíKeypad s tím rozdílem, že program používá OnSleep přepsání k uložení aktuální položky klávesnice a konstruktor stránky obnovit tato data.
Poznámka:
Další přístup k ukládání nastavení programu poskytuje Xamarin.Essentialstřída Preferences .
