ConstraintLayout 2.0 Yenilikleri

Bu yazıda tanıtıldığı ilk günden beri heyecan uyandıran, tasarım yapmayı zevkli hale getiren ve view hierarchy sorununu çözmesiyle uygulamalarımıza rahat bir nefes aldıran ConstraintLayout'un yeni versiyonunun ve getirdiği yeniliklerin üzerinden geçeceğiz. Eylül 2018'de 1.1.3 stable versiyonu yayınlandığından yaklaşık 2 yıl sonra Ağustos 2020'de 2.0.0 stable hale geldi. Hemen sonrasında da bir kaç minor sürüm ile daha kararlı hale getirildi. Şu an 2.0.4 sürümü kullanılabilir durumda.

Yazı ile ilgili Github repoma buradan erişebilirsiniz. 2.0 sürümü ile gelen yeniliklere başlıklar halinde incelemeye başlayalım.

Flow

Flow, view'ları yatayda ve düşeyde dinamik olarak birbirine bağlayarak view sıralayan bir sanal düzen yardımcısıdır (virtual layout helper). Flow'a bağladığınız view'ların düzenini xml içersinde app:flow_... değişkenleri ile beraber değiştirebilirsiniz. Bunlardan en önemlisi olan flow_wrapMode'un 3 farklı seçeneği bulunuyor. 1- none : Yatay düzlemde view'ları birbirine bağlar ve içeriği sınırlamaz. View'lar, Flow sınırlarının dışına taşabilir. 2- chain : View'ları, flow sınırları içerisine sığdırabilecek şekilde yatay ve düşey düzlemde birbirine bağlar. 3- aligned : View'ları, flow sınırları içerisine sığdırabilecek şekilde yatay ve düşey düzlemde birbirine bağlar. Chain olarak benzerlik göstermesi ile beraber satır ve sütunları birbirine otomatik olarak hizalar.

Flow ile birlikte kullanabileceğiniz diğer değişkenler:

  • flow_horizontalStyle = "spread|spread_inside|packed"

  • flow_verticalStyle = "spread|spread_inside|packed"

  • flow_horizontalBias = "float"

  • flow_verticalBias = "float"

  • flow_horizontalGap = "dimension"

  • flow_verticalGap = "dimension"

  • flow_horizontalAlign = "start|end"

  • flow_verticalAlign = "top|bottom|center|baseline

Ekstra: FlexBoxLayout'a benzer bir yaklaşım gösterdiği için FlexBoxLayout kullandığınız yerleri Flow kullanarak yeniden tasarlayabilirsiniz.

Bu görselin xml'ine aşağıdan ulaşabilirsiniz.




Layer


Layer, birden fazla view'a aynı anda kaydırma, döndürme ve ölçek değiştirme (scale) animasyonlarını ekleyebilmeniz için sanal bir katman yaratır.


İlgili animasyon ile view'lara uygulayabilmek için animasyonu Layer'a uygulamanız gerekir.


Tasarım dosyası için: Github Link



















ImageFilterView

ImageFilterView, imajlar üzerinde dönüşüm yapmanızı, renk ve parlaklık gibi değerleri değiştirebilmenizi sağlayan yeni bir view türü.

ImageFilterView ile imaj üzerinde yapabileceğiniz diğer değişiklikleri görebilmek için Android dökümanına göz atabilirsiniz.

Döküman Linki























MotionLayout

MotionLayout, ConstraintLayout sınıfından türeyen MotionEditor ve MotionScene kullanarak tasarımlarınıza animasyon ekleminizi kolaylaştıran yeni bir ViewGroup türü. MotionLayout, içerik yönünden çok zengin olduğu için MotionLayout'un detaylarına başka bir yazıda değiniyor olacağım.



Github: https://github.com/bsobe/CL2-Example


Referanslar

ConstraintLayout 2.0 resmi blog yazısı Developer Android

#ConstraintLayout #MotionLayout #android

0 yorum

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
imageedit_2_9667998092.png
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

Kurumsal Yazar Hesapları

adesso.png
mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın