Xamarin.Forms Hızlı oluşturucular
Geleneksel olarak, Android'de özgün denetim işleyicilerinin çoğu iki görünümden oluşur:
- veya
TextView
gibi yerel birButton
denetim. - Bazı düzen işlerini, hareket işlemeyi ve diğer görevleri işleyen kapsayıcı
ViewGroup
.
Ancak, bu yaklaşımın her mantıksal denetim için iki görünümün oluşturulmasında bir performans etkisi vardır ve bu da daha fazla bellek gerektiren daha karmaşık bir görsel ağaç ve ekranda işlenmesi daha fazla işlem gerektirir.
Hızlı işleyiciler, bir Xamarin.Forms denetimin enflasyon ve işleme maliyetlerini tek bir görünümde azaltır. Bu nedenle, iki görünüm oluşturup bunları görünüm ağacına eklemek yerine yalnızca bir görünüm oluşturulur. Bu, daha az nesne oluşturarak performansı artırır; bu da daha az karmaşık bir görünüm ağacı ve daha az bellek kullanımı anlamına gelir (bu da daha az çöp toplama duraklamasına neden olur).
Hızlı işleyiciler, Android'de Xamarin.Forms aşağıdaki denetimler için kullanılabilir:
İşlevsel olarak, bu hızlı işleyiciler eski işleyicilerden farklı değildir. 4.0'dan Xamarin.Forms itibaren hedef alan FormsAppCompatActivity
tüm uygulamalar varsayılan olarak bu hızlı işleyicileri kullanır. ve CollectionView
dahil olmak üzere ImageButton
tüm yeni denetimler için işleyiciler hızlı işleyici yaklaşımını kullanır.
Hızlı işleyicileri kullanırken performans geliştirmeleri, düzenin karmaşıklığı bağlı olarak her uygulama için farklılık gösterir. Örneğin, x2'nin performans iyileştirmeleri, her satırdaki hücrelerin hızlı işleyiciler kullanan denetimlerden oluştuğu ve görünür şekilde daha düzgün kaydırmaya neden olan binlerce veri satırı içeren bir ListView
satırda gezinirken mümkündür.
Not
Özel işleyiciler, eski işleyiciler için kullanılan yaklaşım kullanılarak hızlı işleyiciler için oluşturulabilir. Daha fazla bilgi için bkz. Özel Oluşturucular.
Geriye dönük uyumluluk
Hızlı işleyiciler aşağıdaki yaklaşımlarla geçersiz kılınabilir:
çağrısından
Forms.Init
önce sınıfınızaMainActivity
aşağıdaki kod satırını ekleyerek eski işleyicileri etkinleştirme:Forms.SetFlags("UseLegacyRenderers");
Eski işleyicileri hedefleyen özel işleyicileri kullanma. Mevcut tüm özel işleyiciler eski işleyicilerle çalışmaya devam eder.
Farklı işleyiciler kullanan, gibi
Material
farklıView.Visual
bir belirterek. Malzeme Görseli hakkında daha fazla bilgi için bkz Xamarin.Forms . Malzeme Görseli.