Bölüm 6'nın özeti. Düğme tıklamaları
Not
Bu kitap 2016 baharında yayımlanmıştır ve o zamandan beri güncellenmemiştir. Kitapta değerli kalan çok şey vardır, ancak bazı malzemeler eskidir ve bazı konular artık tamamen doğru veya eksiksiz değildir.
Button
, kullanıcının bir komut başlatmasına izin veren görünümdür. AButton
, metin (ve isteğe bağlı olarak 13. Bölüm, Bit Eşlemler'de gösterildiği gibi bir resim) ile tanımlanır. Sonuç olarak, Button
ile aynı özelliklerin Label
çoğunu tanımlar:
Button
ayrıca, kenarlığının görünümünü yöneten üç özelliği tanımlar, ancak bu özelliklerin ve karşılıklı bağımsızlıklarının desteği platforma özgüdür:
BorderColor
türüColor
BorderWidth
türüDouble
BorderRadius
türüDouble
Button
ayrıca , ve VerticalOptions
dahil olmak üzere BackgroundColor
HorizontalOptions
ve View
tüm özelliklerini VisualElement
devralır.
Tıklamayı işleme
sınıfı, Button
kullanıcı öğesine dokunduğunda Button
tetiklenen bir Clicked
olayı tanımlar. İşleyici Click
türündedir EventHandler
. İlk bağımsız değişken olayı oluşturan nesnedir Button
; ikinci bağımsız değişken ek bilgi sağlamayan bir EventArgs
nesnedir.
ButtonLogger örneği basit Clicked
işlemeyi gösterir.
Paylaşım düğmesi tıklamaları
Birden çok Button
görünüm aynı Clicked
işleyiciyi paylaşabilir, ancak işleyicinin genellikle belirli bir olaydan hangilerinin Button
sorumlu olduğunu belirlemesi gerekir. Yaklaşımlardan biri, çeşitli Button
nesneleri alan olarak depolamak ve işleyicide olayı tetikleyen nesneleri denetlemektir.
TwoButtons örneği bu tekniği gösterir. Program ayrıca , tuşuna basıldığında özelliğinin false
Button
nasıl ayarlandığını IsEnabled
da gösterir.Button
Devre dışı bırakılmış Button
bir Clicked
olay oluşturmaz.
Anonim olay işleyicileri
ButtonLambdas örneğinde gösterildiği gibi işleyicileri anonim lambda işlevleri olarak tanımlamak Clicked
mümkündür. Ancak, anonim işleyiciler dağınık yansıma kodu olmadan paylaşılamaz.
Kimliklerle görünümleri ayırt etme
Özelliği veya AutomationId
özelliği olarak string
ayarlanarak StyleId
birden çok Button
nesne ayırt edilebilir. Bu özellik tarafından Element
tanımlanır ancak içinde Xamarin.Formskullanılmaz. Yalnızca uygulama programları tarafından kullanılması amaçlanmıştır.
SimplestKeypad örneği, sayısal tuş takımındaki 10 sayı anahtarının tümü için aynı olay işleyicisini StyleId
kullanır ve bunları özelliğiyle ayırt eder:
Geçici verileri kaydetme
Bir program sonlandırıldığında birçok uygulamanın verileri kaydetmesi ve program yeniden başlatıldığında bu verileri yeniden yüklemesi gerekir. sınıfı, Application
programınızın geçici verileri kaydetmesine ve geri yüklemesine yardımcı olan birkaç üye tanımlar:
Properties
özelliği, anahtarlar veobject
öğeler içerenstring
bir sözlüktür. Sözlüğün içeriği, program sonlandırmadan önce uygulama yerel depolama alanına otomatik olarak kaydedilir ve program başlatıldığında yeniden yüklenir.- sınıfı,
Application
programın standartApp
sınıfının geçersiz kıldığını üç korumalı sanal yöntem tanımlar:OnStart
,OnSleep
veOnResume
. Bunlar uygulama yaşam döngüsü olaylarına başvurur. SavePropertiesAsync
yöntemi, sözlüğün içeriğini kaydeder.
çağrısı SavePropertiesAsync
yapılması gerekmez. Sözlüğün içeriği, program sonlandırmadan önce otomatik olarak kaydedilir ve program başlamadan önce alınır. Program kilitlenirse verileri kaydetmek için program testi sırasında yararlıdır.
Ayrıca yararlı olan:
Application.Current
, daha sonra sözlüğü eldeProperties
etmek için kullanabileceğiniz geçerliApplication
nesneyi döndüren statik bir özellik.
İlk adım, program sonlandırıldığında kalıcı hale getirmek istediğiniz sayfadaki tüm değişkenleri tanımlamaktır. Bu değişkenlerin değiştiği tüm yerleri biliyorsanız, bu noktada bunları Properties
sözlüğe ekleyebilirsiniz. Sayfanın oluşturucusunda, anahtar varsa sözlükten Properties
değişkenleri ayarlayabilirsiniz.
Büyük olasılıkla daha büyük bir programın uygulama yaşam döngüsü olaylarıyla ilgilenmesi gerekir. En önemli yöntemdir OnSleep
. Bu yönteme yapılan çağrı, programın ön plandan ayrıldığını gösterir. Belki de kullanıcı cihazda Giriş düğmesine basmıştır veya tüm uygulamaları görüntülemiştir veya telefonu kapatıyordur. çağrısı OnSleep
, bir programın sonlandırilmeden önce aldığı tek bildirimdir. Program, sözlüğün Properties
güncel olduğundan emin olmak için bu fırsatı değerlendirmelidir.
çağrısı OnResume
, programın son çağrısından OnSleep
sonra sonlandırılmadığını ancak artık ön planda yeniden çalıştığını gösterir. Program bu fırsatı internet bağlantılarını yenilemek için kullanabilir (örneğin).
Için bir çağrı OnStart
program başlatma sırasında gerçekleşir. Oluşturucu çağrıldığında içerik zaten geri yüklendiğinden Properties
, bu yöntem sözlüğe erişmek için çağrılana App
kadar beklemeniz gerekmez.
Not
Program ayarlarını kaydetmeye yönelik başka bir yaklaşım Tercihler sınıfı tarafından Xamarin.Essentialssağlanır.