Aracılığıyla paylaş


Bölüm 15'in özeti. Etkileşimli arabirim

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.

Bu bölümde, kullanıcıyla etkileşime izin veren sekiz View türev araştırılmaktadır.

Görünüme genel bakış

Xamarin.Forms ,'den View türetilen ancak türetilmeyen Layout20 örneklenebilir sınıf içerir. Bunlardan altısı önceki bölümlerde ele alınmıştır:

Bu bölümdeki sekiz görünüm, kullanıcının temel .NET veri türleriyle etkileşim kurmasını etkili bir şekilde sağlar:

Veri türü Görünümler
Double Slider, Stepper
Boolean Switch
String Entry, Editor, SearchBar
DateTime DatePicker, TimePicker

Bu görünümleri, temel alınan veri türlerinin görsel etkileşimli gösterimleri olarak düşünebilirsiniz. Bu kavram, sonraki bölüm olan 16. bölümde daha fazla inceleniyor. Veri bağlama.

Kalan altı görünüm aşağıdaki bölümlerde ele alınmıştır:

Kaydırıcı ve step

Her ikisi de Slider ve Stepper kullanıcının bir aralıktan sayısal bir değer seçmesine izin verir. Slider, ayrık değerler içerirken Stepper sürekli bir aralıktır.

Kaydırıcı temelleri

, Slider soldaki en düşük değer aralığından sağda en yüksek değer aralığına kadar olan bir aralığı temsil eden yatay bir çubuk. Üç genel özelliği tanımlar:

  • Value türünde double, varsayılan değer 0
  • Minimum türünde double, varsayılan değer 0
  • Maximum türünde double, varsayılan değer 1

Bu özellikleri destekleyen bağlanabilir özellikler tutarlı olmalarını sağlar:

  • Üç özellik için de, coerceValue bağlanabilir özellik için belirtilen yöntem ile Maximumarasında Minimum olmasını Value sağlar.
  • validateValue üzerindeki MinimumProperty yöntemi, değerinden büyük veya buna eşit ve için MaximumPropertybenzer bir değere Maximumayarlanıyorsa Minimum döndürürfalse. yönteminden döndürülmek false validateValue , bir'in ArgumentException yükseltilmesine neden olur.

Slider özelliği değiştiğinde ValueChanged veya kullanıcı tarafından işlendiğinde olayı bir ValueChangedEventArgs bağımsız değişkenle Value tetikler Slider.

SliderDemo örneği, basit kullanımını Slidergösterir.

Yaygın tuzaklar

Hem kodda hem de XAML'de Minimum ve Maximum özellikleri belirttiğiniz sırada ayarlanır. Bu özellikleri her zaman değerinden Maximum büyük olacak şekilde başlatmayı Minimumunutmayın. Aksi takdirde bir özel durum oluşturulur.

Özelliklerin Slider başlatılması özelliğin Value değişmesine ve ValueChanged olayın tetiklenmesine neden olabilir. Olay işleyicisinin Slider sayfa başlatma sırasında henüz oluşturulmamış görünümlere erişmediğinden emin olmanız gerekir.

ValueChanged Özellik değişmediği sürece Value başlatma sırasında Slider olay tetiklenmiyor. İşleyiciyi ValueChanged doğrudan koddan çağırabilirsiniz.

Kaydırıcı rengi seçimi

RgbSliders programı, RGB değerlerini belirterek etkileşimli olarak bir renk seçmenize olanak sağlayan üç Slider öğe içerir:

R G B kaydırıcılarının üçlü ekran görüntüsü

TextFade örneği, iki öğeyi bir arasında taşımak ve bir AbsoluteLayout öğeyi diğerine soldurmak için iki Slider Label öğe kullanır.

Stepper farkı

ile Stepper aynı özellikleri ve olayları Slider tanımlar, ancak Maximum özelliği 100'e başlatılır ve Stepper dördüncü bir özelliği tanımlar:

  • Increment türünde double, 1 olarak başlatıldı

Görsel olarak , Stepper ve +etiketli iki düğmeden oluşur. Tuşuna basmak en az Minimumolacak şekilde azalır Value Increment. Tuşuna basıldığında + Increment en fazla Maximumolarak artarValue.

Bu, StepperDemo örneği tarafından gösterilmiştir.

Anahtar ve Onay Kutusu

, Switch kullanıcının bir Boole değeri belirtmesine izin verir.

Temel bilgileri değiştirme

Görsel olarak, Switch seçeneği kapatılabilir ve açılabilir bir iki durumlu düğmeden oluşur. sınıfı bir özellik tanımlar:

Switch bir olayı tanımlar:

SwitchDemo programı, öğesini Switchgösterir.

Geleneksel bir CheckBox

Bazı geliştiriciler için daha geleneksel CheckBox Switchbir tercih olabilir. Book.Toolkit kitaplığı, öğesinden ContentViewtüretilen bir CheckBox sınıf içerir.Xamarin.Forms CheckBoxCheckBox.xaml ve CheckBox.xaml.cs dosyaları tarafından uygulanır. CheckBox üç özelliği (Text, FontSizeve IsChecked) ve bir CheckedChanged olayı tanımlar.

CheckBoxDemo örneği bunu CheckBoxgösterir.

Metin yazma

Xamarin.Forms kullanıcının metin girmesini ve düzenlemesini sağlayan üç görünümü tanımlar:

  • Entry tek bir metin satırı için
  • Editor birden çok metin satırı için
  • SearchBar arama amacıyla tek bir metin satırı için.

Entry ve Editor 'den InputViewtüretilir View. SearchBar doğrudan öğesinden Viewtüretilir.

Klavye ve odak

Fiziksel klavyesi olmayan telefonlarda ve tabletlerde, , Editorve SearchBar öğelerinin Entrytümü sanal klavyenin açılır olmasına neden olur. Bu klavyenin ekranda bulunması giriş odağıyla ilgilidir. Bir görünümün giriş odağını almak için hem hem IsVisible de IsEnabled özellikleri ayarlanmış true olmalıdır.

Giriş odağına iki yöntem, bir salt okunur özellik ve iki olay dahil edilir. Bunların tümü tarafından VisualElementtanımlanır:

  • Focus yöntemi giriş odağını bir öğeye ayarlamayı dener ve başarılı olursa döndürür true
  • yöntemi bir Unfocus öğeden giriş odağını kaldırır
  • IsFocused Salt okunur özelliği, öğenin giriş odağının olup olmadığını gösterir
  • Olay, Focused bir öğenin giriş odağını ne zaman aldığını gösterir
  • Olay, Unfocused bir öğenin giriş odağını ne zaman kaybettiğini gösterir

Klavyeyi Seçme

InputView ve türetilen Entry Editor sınıfı yalnızca bir özelliği tanımlar:

Bu, görüntülenen klavye türünü gösterir. Bazı klavyeler URI'ler veya sayılar için iyileştirilmiştir.

sınıfı, Keyboard aşağıdaki bit bayraklarına sahip bir sabit listesi türündeki KeyboardFlagsbağımsız değişkene sahip statik Keyboard.Create bir yönteme sahip bir klavye tanımlamaya olanak tanır:

Çok satırlı Editor bir paragraf veya daha fazla metin beklendiğinde kullanıldığında, klavye seçmek için çağrı Keyboard.Create yapmak iyi bir yaklaşımdır. Tek satırlı Entryiçin aşağıdaki statik salt okunur özellikleri Keyboard yararlıdır:

, KeyboardTypeConverter EntryKeyboards programı tarafından gösterildiği gibi XAML'de bu özelliklerin belirtilmesine izin verir.

Giriş özellikleri ve olayları

Tek satır Entry aşağıdaki özellikleri tanımlar:

ayrıca Entry iki olayı tanımlar:

  • TextChanged bir TextChangedEventArgs nesneyle, özellik her değiştiğinde Text tetiklenir
  • Completed, kullanıcı bittiğinde ve klavye kapatıldığında tetiklenir. Kullanıcı, tamamlanmanın platforma özgü bir şekilde olduğunu belirtir

QuadraticEquations örneği bu iki olayı gösterir.

Düzenleyici farkı

Çok satırlıEditor, diğer özelliklerle Entry aynı Text ve Font özellikleri tanımlar ancak tanımlamaz. Editor ayrıca ile aynı iki özelliği Entrytanımlar.

JustNotes , içeriğini kaydeden ve geri yükleyen serbest biçimli bir not alma programıdır Editor.

SearchBar,'den InputViewtüretilmez, bu nedenle özelliği Keyboard yoktur. Ancak tanımlayan tüm Text, Fontve Placeholder özelliklerine Entry sahiptir. Buna ek olarak, SearchBar üç ek özellik tanımlar:

Platforma özgü iptal düğmesi metni siler. ayrıca platforma SearchBar özgü bir arama düğmesi de vardır. Bu düğmelerden birine basmak şunları tanımlayan SearchBar iki olaydan birini tetikler:

SearchBarDemo örneğinde gösterilmiştirSearchBar.

Tarih ve saat seçimi

DatePicker ve TimePicker görünümleri, kullanıcının tarih veya saat belirtmesine olanak sağlayan platforma özgü denetimler uygular.

The DatePicker

DatePicker dört özelliği tanımlar:

  • MinimumDate türünde DateTime, 1 Ocak 1900'e kadar başlatıldı
  • MaximumDate türünde DateTime, 31 Aralık 2100'e kadar başlatıldı
  • Date türünde DateTime, başlatıldı DateTime.Today
  • Format türünde string, kısa tarih deseni olan "d" olarak başlatılan .NET biçimlendirme dizesi, ABD'de "20/7/1969" gibi bir tarih görüntüsüyle sonuçlanır.

Özellikleri özellik öğeleri olarak ifade ederek ve kültür sabiti kısa tarih biçimini ("7/20/1969") kullanarak XAML'de özellikleri ayarlayabilirsiniz DateTime .

DaysBetweenDates örneği, kullanıcı tarafından seçilen iki tarih arasındaki gün sayısını hesaplar.

TimePicker (veya bir TimeSpanPicker mı?)

TimePicker iki özellik tanımlar ve olay yoktur:

  • Time , yerine türündedir TimeSpan DateTimeve gece yarısından bu yana geçen süreyi belirtir
  • Format türünde string, .NET biçimlendirme dizesi "t" olarak başlatıldı, kısa zaman deseni, ABD'de "1:45 PM" gibi bir zaman görüntüsüyle sonuçlandı.

SetTimer programı, zamanlayıcı için bir zaman belirtmek için öğesinin nasıl kullanılacağını TimePicker gösterir. Program yalnızca ön planda tutarsanız çalışır.

SetTimer, bir uyarı kutusu görüntülemek için yönteminin Page kullanılmasını DisplayAlert da gösterir.