Jetpack Oluşturma ile Özel Düzenler (Derin Dalış) | yazan ABHINAV CHAUHAN | Mayıs, 2022

Jetpack Oluşturma ile Özel Düzenler (Derin Dalış) |  yazan ABHINAV CHAUHAN |  Mayıs, 2022

Zaman zaman gereksinimimiz hazır Düzenlerin ötesinde bir şeye ihtiyaç duyar. Jetpack’te örneğin yerleştirmek istiyoruz birleştirilebilirler aşağıdaki resimdeki gibi.

Composable’larınızı bu şekilde yerleştirebilecek mevcut bir düzen yoktur.

Peki bir şey olmadığında ne yaparız? (varlığa getirin).

Öyleyse kendi özel düzenimizi yazalım, buna OverlappingRow diyoruz.

İlk bakışta, bir gibi görünüyor Sıra Birleştirilebilir. Row’un kaynak koduna bakalım ve biraz yardım alıp alamayacağımıza bakalım.

Bir Satır 3 parametre bildirir

  1. değiştirici Bu makalenin kapsamı dışında kalanlar, onlar hakkında bilgi edinin. burada
  2. (yatay Düzenleme ve dikeyDüzenleme) temelde çocukların ayrıntılarını alabilecekleri çeşitli düzenlemeler ayrıca bu makalenin kapsamı dışında onlar hakkında bilgi edinin burada

3. içerik sıraya koyduğunuz diğer Composable’lardır

Ardından, bir çağrı var Düzen argümanları kullanarak işin geri kalanını yapan birleştirilebilir.

Bir Düzen Oluşturulabilir, herhangi bir oluşturulabilir içeriğin bir grup olarak nasıl yerleştirileceğine kim karar verir, aşağıdaki gibi tüm önceden tanımlanmış Oluşturulabilir’lerin arkasındadır. Sıra, Kolon , Kutu.

To Düzen ihtiyacı var Ölçüm Politikası bu kararları aldığın için.

Bir yerleşim düzeninin nasıl ölçüldüğünü ve yerleştirildiğini tanımlar, bu nedenle önceden tanımlanmış her ikisi için de ana yapı taşıdır. Satır, Sütun, Kutu ve özel düzenler.

yukarıdaki kaynak koduna dikkat ettiyseniz Sıra ayrıca bir örneğini alır Ölçüm Politikası arayarak rowMeasurePolicy() yöntem.

Ölçüm Politikası bir Arayüzdür. Geçersiz kılmamız gereken tek soyut yöntem is

MeasureScope.measure(
measurables: List<Measurable>,
constraints: Constraints
): MeasureResult

measure() yöntem, çocuğun temsili olan bir Ölçülebilirler (ölçülebilirler) listesi alır. birleştirilebilirler ve kısıtlamalar üst Composable tarafından uygulanan alt oluşturulabilir öğelerin boyutuna ilişkin sınırlamayı temsil eder ve bir ÖlçümSonuç o zaman hangisi Düzen Düzenimizi doğru boyutta yerleştirmek için şekillendirilebilir kullanımlar.

İçinde rowMeasurePolicy() yukarıdaki kodda en Sıra composable, alt öğesinin ölçümünü ve yerleşimini yapar Composables biraz karmaşıktır, bu yüzden bu makalede ele alamayız, ancak kendimiz yazacağız Ölçüm politikası hangi Row’unkinden çok daha basit Ölçüm Politikası çünkü Row’un sağladığı tüm özellikleri sağlamaz.

Not : örtüşme faktörü, bir sonraki çakışmadan önce birleştirilebilir her alt öğenin ne kadarının görünür olacağına karar verir, 1.0 tamamen görünür anlamına gelir 0,7, %70 anlamına gelir 0,5, %50 görünür anlamına gelir vb.

Nasıl çalıştığını anlayalım.

  1. Her şeyden önce, tüm çocukları ölçüyoruz ve yerleştirilebilir nesneler bunlar aynı zamanda çocuk Birleştirilebilirlerin temsilleridir, ancak boyutu vardır, ihtiyacımız var yerleştirilebilir Çünkü yerleştirilebilir x ve y ve z koordinatları verilen bir birleştirilebilir yerleştirme yöntemlerine sahiptir.
  2. biz diyoruz layout() bir döndüren yöntem ÖlçümSonuç hangi dönüş türü measure() yöntem. bu layout() yöntemin mizanpajımızın ne kadar geniş ve uzun olmasını istediğimizi bilmesi gerekiyor, bu yüzden genişlik ve yüksekliği hesaplıyor ve bunları argüman olarak iletiyoruz. layout().
  3. layout() ayrıca yerleştirme mantığımızı yazdığımız bir yerleştirme bloğuna da ihtiyacı var. şuna benzer onLayout() görünüm dünyasında. Son adımda, mantığı tamamen parçaya yazıyoruz.

Şimdi devam edip geleneğimizi yazabiliriz ÖrtüşenSatır Birleştirilebilir

kullanım

Sonuç

aşağıda akış düzenini aynı şekilde nasıl uygulayacağınızı görebilirsiniz

Teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.