Share via


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:

Buttonayrıca , ve VerticalOptionsdahil olmak üzere BackgroundColorHorizontalOptionsve Viewtüm özelliklerini VisualElement devralır.

Tıklamayı işleme

sınıfı, Button kullanıcı öğesine dokunduğunda Buttontetiklenen 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 falseButton 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 stringayarlanarak 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:

En basit tuş takımının üçlü ekran görüntüsü

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 ve object öğeler içeren string 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 standart App sınıfının geçersiz kıldığını üç korumalı sanal yöntem tanımlar: OnStart, OnSleepve OnResume. Bunlar uygulama yaşam döngüsü olaylarına başvurur.
  • SavePropertiesAsync yöntemi, sözlüğün içeriğini kaydeder.

çağrısı SavePropertiesAsyncyapı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üğü elde Properties etmek için kullanabileceğiniz geçerli Application 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.

PersistentKeypad örneği SimplestKeypad'eçok benzer, ancak program geçerli tuş takımı girdisini kaydetmek için geçersiz kılmayı ve bu verileri geri yüklemek için sayfa oluşturucuyu kullanırOnSleep.

Not

Program ayarlarını kaydetmeye yönelik başka bir yaklaşım Tercihler sınıfı tarafından Xamarin.Essentialssağlanır.