Compose Foundation

Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta sürümü Alfa Sürümü
9 Eylül 2026 1.12.1 - - 1.13.0-alpha03

Yapı

Compose, androidx içindeki 7 Maven grup kimliğinin birleşimidir. Her grup, işlevlerin hedeflenen bir alt kümesini içerir ve her birinin kendi sürüm notları vardır.

Bu tabloda gruplar açıklanmakta ve her bir sürüm notu grubuna bağlantı verilmektedir.

GrupAçıklama
compose.animationKullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun.
compose.compiler@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin.
compose.foundationKullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin.
compose.materialKullanıma hazır Materyal Tasarım bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklanan bileşenleri sağlamak üzere tasarlanmış, Compose'un daha üst düzey giriş noktasıdır.
compose.material3Materyal Tasarım'ın bir sonraki evrimi olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3, güncellenmiş temalar ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özelliklerini içerir. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır.
compose.runtimeCompose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedefleyeceği temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken Compose kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları bildirme

Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:

Groovy

dependencies {
    implementation "androidx.compose.foundation:foundation:1.12.1"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:1.12.1")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Sürüm 1.13

Sürüm 1.13.0-alpha03

9 Eylül 2026

androidx.compose.foundation:foundation-*:1.13.0-alpha03 iptal edilir. 1.13.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Birleşik bir composable'ın (ör. TextField veya DatePicker) tek tek bölümlerinin stilini doğrudan composable'ın stil parametresinde belirtme desteği ekler. Bu, örneğin, her bir dekoratör kutusunun bir stil kullanılarak özelleştirilmesine olanak tanıyan, tema düzeyinde veya çağrı sitesinde geçersiz kılınabilen TextField benzeri bir composable oluşturulmasını sağlar. (I43c0f)
  • value, onValueChange parametrelerini kabul eden Material 2 metin alanı aşırı yüklemelerinin desteği sonlandırıldı. Lütfen durumunu yükseltmek için TextFieldState kullanan aşırı yüklemeye geçin. (I6b841, b/556234973)
  • TextFieldState bölümündeki undoState öğesinden @ExperimentalFoundationApi ek açıklaması kaldırıldı. (I93a44)
  • İlgili @Composeable işlevlerinde kullanılan varsayılan değerleri içeren her tembel düzen için varsayılan yapılandırma nesneleri ekleyin. Şu anda yalnızca her düzen için varsayılan önbellek penceresini içerir. (I58633)
  • Etkinleştirildiğinde isUsingDynamicDefaultCacheWindowIn[List|Grid|StaggeredGrid]s işareti, tembel düzenlerin, görünür öğelerin ortalama boyutunu kullanarak görünüm alanının önünde önceden getirme işlemi yapmasına neden olur. Bu işlemde, görünüm alanının minimum% 10'u ve maksimum% 50'si kadar bir ön pencere kullanılır. (I59212)
  • LazyListPrefetchStrategy, LazyListPrefetchScope ve LazyListPrefetchResultScope desteği sonlandırıldı. Önceden getirme davranışı, LazyLayoutCacheWindow LazyColumn veya LazyRow kullanılarak yapılandırılmalıdır. LazyLayoutCacheWindow, öğeleri önceden otomatik olarak hazırlayan ve karmaşık zorunlu planlama geri çağırmaları gerektirmeden öğeleri görünür pencerenin arkasında tutan, bildirim temelli ve görüntü alanı tabanlı bir önbelleğe alma mekanizması sağlar. Yeni API daha basittir ve LazyListPrefetchStrategy'ya kıyasla daha az yapılandırma adımı gerektirir. (I1fa2d)
  • Poligon şekillerini dönüştürmek ve sığdırmak için Compose Foundation'da PolygonShape.transformed ve PolygonShape.scaledToFit uzantı işlevlerini ekler. (I3f327)
  • Bu değişiklik, Styles API'yi iki bağımsız parçaya ayırır: Styles DSL ve DSL tarafından yapılandırılan değiştiriciler. Önceki Style tabanlı uygulama hâlâ mevcut ancak desteği sonlandırılacak ve kaldırılacak. Bu API'nin tüm kullanımları yeni CommonStyle tabanlı API ile değiştirilmelidir.
  • Tanıtılan temel bileşenler:
    • CustomStyle & CommonStyle: Birleştirilebilir stilleri bildirmek için temel arayüzler ve birleştirme yardımcıları.
    • StyleResolver: Kompozisyondaki stil özelliklerini çözer ve Modifier.styleResolver aracılığıyla düzen düğümlerine bağlanır.
    • Modifier scopes: Modifier.appearance, Modifier.placement ve dinamik geri arama tabanlı Modifier.padding ve Modifier.graphicsLayer.
    • Mülk temel öğeleri: stylePropertyOf, styleLocalOf.
    • Stil özellikleri için yararlı türler: Breadth, Fill ve Shadows.
  • Yeni değiştiriciler, Styles API kullanılarak bir tasarım sistemi uygulanırken faydalı olur ancak zorunlu değildir. Bir tasarım sistemi bu değiştiricileri kullanabilir veya kendi değiştiricilerini sağlayabilir. (Ieb8cc, b/549921960)
  • Değişiklikleri izleyen TextFieldBuffer API'lerinden ExperimentalFoundationApi açıklaması kaldırıldı (I546a7).
  • Poligon şekiller arasında şekil değiştirme animasyonları için Compose Foundation'da MorphPolygonShape'ı, RoundedCornerShape ve CutCornerShape için toPolygonShape() dönüştürücüleri kullanıma sunar. (Ic5a89)
  • Köşe düzleştirme ile normal, yıldız ve özel yuvarlak çokgenleri oluşturmak için Compose Foundation'da PolygonShape özelliğini kullanıma sunar. (I0b99d)
  • value, onValueChange parametrelerini kabul eden BasicTextField aşırı yüklemelerinin desteği sonlandırıldı. Lütfen durumunu yükseltmek için TextFieldState kullanan BasicTextField aşırı yüklemesine geçin. (I636bf, b/552879150)
  • BasicTextField(value, onValueChange) ile birlikte VisualTransformation da kullanımdan kaldırılmıştır. Bunun nedeni, yalnızca bu TextField varyantı üzerinden kullanıma sunulmasıdır. Mevcut dönüşümler OutputTransformation'e taşınmalıdır. (I636bf, b/552879150)
  • LazyLayoutCacheWindow ve LazyListPrefetchStrategy değerlerinin LazyListState üzerinden sağlanması, birleştirilebilir işlev için LazyLayoutCacheWindow sağlanması lehine kullanımdan kaldırıldı. (I71f19)
  • Geçici özellik bayrağı ComposeFoundationFlags.isPausableCompositionInPrefetchEnabled kaldırıldı. (Ifff7f)
  • Giriş karakterlerini keserek metin uzunluğunu sınırlamak için InputTransformation.maxLengthTrim işlevi eklendi, maxLength değerini aşan girişleri reddetmek için InputTransformation.maxLengthReject işlevi eklendi ve InputTransformation.maxLength işlevi maxLengthTrim ve maxLengthReject işlevleri lehine kullanımdan kaldırıldı. (I8d4cd)

Hata Düzeltmeleri

  • compileSdk için Compose kitaplıkları 37.1 sürümüne güncellendi. Bu işlem, Compose kullanan tüm uygulamalar ve kitaplıklar için compileSdk öğesinin geçişli olarak güncellenmesini gerektirir. (I05b0f)
  • Tahmin edilen geri gitme sırasında WindowInsetsRulers IME eklerinin animasyonlu olarak işaretlenmemesi ve odak metin alanları arasında değiştirildiğinde imePadding öğesinin güncellenmemesi sorunu düzeltildi. (Id4562, b/537386261, b/539686000)
  • SecureTextField ve OutlinedSecureTextField bileşenleri (kullanımdan kaldırılan BasicSecureTextField aşırı yüklemeleriyle birlikte), varsayılan karartma modu olarak TextObfuscationMode.RevealLastTyped yerine TextObfuscationMode.System'ü kullanacak şekilde güncellendi. (I76c7e)

Sürüm 1.13.0-alpha02

26 Ağustos 2026

androidx.compose.foundation:foundation-*:1.13.0-alpha02 iptal edilir. 1.13.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Promoted Grid düzeni API'leri (Grid, GridScope, GridConfigurationScope, GridFlow, Fr, GridTrackSize, GridTrackSpec, Modifier.gridItem) kararlı sürüme geçirildi. (I43ac4, b/462550392)
  • Modifier.background için yeni bir anlamsal özellik BackgroundColor eklendi (I7eec3, b/518049030)
  • ExperimentalFlexBoxApi ek açıklaması kaldırıldı ve FlexConfigScope içindeki piksel tabanlı özellikler, daha anlaşılır olması için Px sonekiyle yeniden adlandırıldı. (I5b24e, b/543092286)
  • Yalnızca ileriye dönük geçişte değilken önbelleğe alınmış öğeleri saklayın. isKeepAroundDuringLookaheadDisabled işaretini kullanıma sunduk. Eski davranışa dönmek için işareti false olarak ayarlayın. (I110e9)
  • isLazyLayoutItemAnimatorVisibleBoundsFixEnabled oluşturma işareti eklendi. Etkinleştirildiğinde, görünür öğe dizini sınırları LazyList ve LazyGrid ölçümünde yerleştirme animasyonları çalıştırılmadan önce hesaplanır. (I56150)
  • Draggable'da ilk geçişte tüketim sorununu düzeltir. Bu, ilk geçişte bir aşağı etkinlik tüketildiğinde sürükleme işleminin ana geçişte hemen başlamasını sağlar. Bu davranış değişikliği, ComposeFoundationFlags.isDraggableInitialPassConsumptionFixEnabled özellik bayrağının arkasında yer alır. (I6a77f, b/532946466)

Sürüm 1.13.0-alpha01

12 Ağustos 2026

androidx.compose.foundation:foundation-*:1.13.0-alpha01 iptal edilir. 1.13.0-alpha01 sürümü bu commit'leri içerir.

Zarar Veren Değişiklikler (Breaking Changes)

  • Önceki sürümdeki duyurunun ardından Modifier.onFocusedBoundsChanged tamamen kaldırıldı. Bu değiştiriciyi kullanmak artık işlem yapmaz. Gerektiğinde bu bilgileri isteğe bağlı olarak sorgulamak için FocusTargetModifierNode.getFocusedRect() kullanmaya geçin. (Ia39db, b/220030968)

API Değişiklikleri

  • LazyLayoutCacheWindow ve LazyGridPrefetchStrategy değerlerinin LazyGridState üzerinden sağlanması, birleştirilebilir işlev için LazyLayoutCacheWindow sağlanması lehine kullanımdan kaldırıldı. (I3f31e)
  • isSkipItemPlacementAnimationFixEnabled işaretini kaldırın (I890f3, b/493183465)
  • isClearNestedScrollCoroutineScopeFixEnabled işaretini kaldırma (Iedfd7, b/506963276)
  • isCacheWindowVisibleItemCountCheckEnabled işareti isCacheWindowLookaheadCheckEnabled olarak değiştirildi (I2ea06)
  • TextFieldState artık metin stili bilgilerini kaydedip geri yükleyebiliyor. AnnotatedString.Annotation.Saver artık AnnotatedString.Annotation nesnelerinin kaydedilmesine ve geri yüklenmesine olanak tanımak için herkese açık. (I8b533, b/135556699)
  • Aşamalı olarak oluşturulan tembel ızgara düzenine bir önbellek penceresi ekler. Eski önceden getirme davranışına dönmek için isUsingCacheWindowInStaggeredGrids değerini false olarak ayarlayın. (I1c70d)
  • FlexBox ve ilgili yapılandırma API'leri kararlı sürüme yükseltildi ve artık deneysel değildir. (I209ed, b/475491619)
  • Sarma etkinleştirildiğinde satır başına öğe sayısının sınırlandırılmasına olanak tanımak için FlexBox'e maxItemsInEachLine yapılandırması eklendi. (I2744b, b/475491619)
  • Geçersiz kılınabilir boş temel yöntemleri, geçersiz kılma uygulamalarının super'ı çağırmaması gerektiğini belirtmek için @EmptySuper ile Compose'da açıklama ekleyin. (Id407b)
  • WindowInsetsGörünürlük ve animasyon API'leri kararlı sürüme yükseltildi. (I37441, b/537329254)
  • Tıklanabilir öğelerin tıklanması artık Android'de etkileşim ses efektlerini otomatik olarak oynatıyor. (Ia72f8)
  • Önceden yükleme aralığı, görünür öğelerin sayısı kaydırma yapılmadan değişirse artık önceden yükleme aralığını yeniden dolduruyor. Bu kontrolü devre dışı bırakmak ve eski davranışa dönmek için isCacheWindowVisibleItemCountCheckEnabled işaretini false olarak ayarlayın. (I67b5a)
  • Ayrılmış veya bağlantısı kaldırılmış bir CoroutineScope öğesini güvenli bir şekilde döndürmek için NestedScrollDispatcher.coroutineScope özelliği güncellendi. (I9b112, b/535290281)
  • enableNonScrollCaching, isNonScrollCachingEnabled olarak yeniden adlandırıldı (I7a54b, b/535290282)
  • Geliştiricilerin bunları yanlışlıkla onaylama API'leri yerine kullanması durumunda testlerin sessizce başarısız olmasını önlemek için SemanticsNodeInteraction.isDisplayed() ve isNotDisplayed() işlevlerine @CheckResult eklendi. (I1b447, b/508178494)
  • LazyLayoutCacheWindow kararlı hale getirme (I2cda3)
  • Yatay ve Dikey Sayfalayıcı için bringIntoViewSpec parametresi eklendi. Bu parametre, Sayfalayıcı'nın varsayılan uygulamasının geçersiz kılınmasına olanak tanır. (Icdcbf, b/505052292)
  • Lazy layout prefetch scheduler'ın boşta kalma algılamasındaki bir hata düzeltildi. Daha önce, bir kare ciddi şekilde geciktiğinde planlayıcı kendisini yanlışlıkla boşta olarak değerlendirebiliyordu. Bu durum, kaydırma sırasında takılmaya yol açabiliyordu. Eski davranışa dönmek için isLazyPrefetchSchedulerIdleTimeFixEnabled compose işaretini false olarak ayarlayın. (If0594, b/458024295)
  • Görev dağıtıcının üst eş yordam kapsamına erişmek için alternatif bir API olan coroutineScopeOrNull()'yı NestedScrollDispatcher'da kullanıma sunduk. (I18c0f)
  • Yazma sırasında aşırı kaydırma esnasında yatay metin kayması sorunu düzeltildi. AndroidComposeFoundationFlags.isOverscrollPixelRoundingEnabled üzerinden devre dışı bırakılabilir. (Ica169, b/532079110, b/532081619)
  • Bu düzeltmenin Draggable'da kullanıma sunulmasını kontrol etmek için isDraggableZeroDeltaConsumptionEnabled işaretini kullanıma sunuyoruz. Sıfır delta etkinlikleri artık doğru şekilde işleniyor. (I50eb1, b/524163413)
  • Artık metin seçimi, kilitlenmeleri önlemek için eşzamanlı metin güncellemeleri sırasında metin uzunluğuyla güvenli bir şekilde sınırlandırılıyor. (I64fd7)
  • androidx.benchmark artık 24 minSdk sahibi. (Ic2a85)
  • Bağlantılar artık birden fazla satıra yayıldığında tıklamaları daha iyi işliyor. Bunu desteklemek için dokunma hedefi 0 olarak geçersiz kılındı. Bu davranış istenmiyorsa geçersiz kılmak için ComposeFoundationFlags.isLinkMinimumTouchTargetSizeZeroEnabled işaretini kullanın. (Ide41b, b/361106057)
  • Değiştirilebilir durum nesnesine yazarken oluşan düşük hacimli istisna düzeltildi. (I48194, b/503110696)
  • Gezinmeyi/geri yığın durumunu yönetmeyi basitleştirmek ve harici key izleme ihtiyacını ortadan kaldırmak için SaveableStateHolder üzerinde gözlemlenebilir keys kullanıma sunulur. holder.keys üzerinden erişin; removeState ile kaldırın. (I9bbbb, b/398887924)
  • Deneysel ve eski IndirectPointerEvent yardımcı işlevi kaldırıldı. (I05dee, b/499336763, b/501098299, b/501098376, b/513249467)
  • Android'de LocalBringIntoViewSpec kararlı hale getirin. (Ibcb97)
  • isMultiLaneCacheWindowEnabled işareti ekleyin (I3d997)
  • Seçili metni gözlemlemek ve seçimi programatik olarak güncellemek için SelectionContainer'ye iletilecek yeni bir SelectionState API oluşturuldu." into androidx-main am: 929401883c am: c02871cac4 (I15bd4)
  • LocalTextFieldContentObserverRegistrationExecutor eklendi. Bu yöntem, TextField'lerde gerçekleşen örtülü ContentObserver kaydını arka plan iş parçacığına devretmenin bir yolunu sunar. (Ib4fa6, b/505287297, b/509842675)
  • TextObfuscationMode.Default, System olarak yeniden adlandırıldı. TextObfuscationMode.RevealLastTyped artık mutlak bir geçersiz kılma işlevi görüyor ve her zaman son yazılan karakteri gösteriyor. BasicSecureTextField işlevinin varsayılan bağımsız değişkeni System olarak güncellendi. (If26d3, b/425658491, b/453647378)

Hata Düzeltmeleri

  • Android kaydırma kapsayıcısının (ör. ScrollView veya CoordinatorLayout) içine yerleştirilmiş Compose'da hızlı kaydırmanın bazen yanlış hız hesaplamasına neden olduğu sorun düzeltildi. (I0f017)
  • FlexBox içinde, ters yönler, ters sarmalama veya özel öğe sırası kullanılırken odak geçişinin öğelerin görsel sırasıyla eşleşmemesine neden olan sorun düzeltildi. (I4cc61, b/521609263)
  • Modifier.fillMaxWidth() ve Modifier.fillMaxHeight() gibi standart düzen değiştiricilerin, açık bir esnek büyüme faktörü belirtilmediği sürece FlexBox içindeki öğeler üzerinde etkisinin olmaması sorunu düzeltildi. (Ib0ac3, b/515657458)
  • Dinamik alıcılar kullanılarak foundation üst düzey değer sınıfı özelliklerinin dosya düzeyinde optimize edilmiş şekilde başlatılması. (I570d7)
  • Dinamik alıcılar kullanarak foundation-layout değer sınıflarının (WindowInsetsSides vb.) optimize edilmiş yardımcı nesne başlatması. (I01c2b)
  • android:configChanges üzerinden Etkinlik yeniden başlatmaları devre dışı bırakıldığında, uygulama içi yerel ayar değiştirme işleminden sonra, metin seçimi bağlam menüsü öğelerinde eski dizelerin gösterilmesine neden olan sorun düzeltildi. (Ic910b, b/515156417)
  • Dinamik alıcılar kullanarak compose:foundation değer sınıflarının (KeyModifiers, MarqueeAnimationMode, Source vb.) optimize edilmiş yardımcı nesne başlatması. (I78455)
  • Stil animasyonlarını, yalnızca koşullu olarak animasyonda ayarlanan bir değere geçiş yaparken ve bu değerden geçiş yaparken özelliğin varsayılan değerine animasyon uygulanıyormuş gibi davranılmasını sağlayacak şekilde düzeltir. (I8e41d, b/527140078)
  • Izgarada, sınırlı yöndeki mevcut açık parçalardan daha büyük bir aralığa sahip otomatik yerleştirilmiş öğelerin, boşluklar uygulandığında ızgaranın sınırlarının dışına taşmasıyla ilgili sorun düzeltildi. (I00ce0, b/506570362)
  • API bilgilerini temizler (Ia8066)
  • BasicTextField'da, istenildiğinde çıkarılan metin güncellemelerini IME'ye doğru şekilde sağlamamasına neden olan hata düzeltildi. (I746fa, b/203549026, b/492363474)

Sürüm 1.12

Sürüm 1.12.1

9 Eylül 2026

androidx.compose.foundation:foundation-*:1.12.1 iptal edilir. 1.12.1 sürümü bu commit'leri içerir.

Sürüm 1.12.0

12 Ağustos 2026

androidx.compose.foundation:foundation-*:1.12.0 iptal edilir. 1.12.0 sürümü bu commit'leri içerir.

1.11.0 sürümünden beri yapılan önemli değişiklikler:

Sürüm 1.12.0-rc01

29 Temmuz 2026

androidx.compose.foundation:foundation-*:1.12.0-rc01 iptal edilir. 1.12.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.12.0-beta02

1 Temmuz 2026

androidx.compose.foundation:foundation-*:1.12.0-beta02 iptal edilir. 1.12.0-beta02 sürümü bu commit'leri içerir.

Sürüm 1.12.0-beta01

17 Haziran 2026

androidx.compose.foundation:foundation-*:1.12.0-beta01 iptal edilir. 1.12.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Dolaylı işaretçi etkinliklerini tetiklemek için test işlevini yeniden adlandırır (I3ee35, b/509618414).
  • TextObfuscationMode.Default, System olarak yeniden adlandırıldı. TextObfuscationMode.RevealLastTyped artık mutlak bir geçersiz kılma işlevi görüyor ve her zaman son yazılan karakteri gösteriyor. BasicSecureTextField işlevinin varsayılan bağımsız değişkeni System olarak güncellendi. (If26d3, b/425658491, b/453647378)
  • getSpanStyles ve getParagraphStyles, ayrı başlangıç/bitiş dizinleri yerine TextRange alacak şekilde güncellendi. Stil sorgularında artık istisna oluşturmamak için sınır kontrolü gevşetildi ve geçersiz kılınan TrackedRanges özelliklerini sorgularken kilitlenmeler önlendi. (I62a9a, b/514404697)
  • Izgara düzenine Adlandırılmış Alanlar özelliği eklendi. Geliştiriciler artık GridConfigurationScope.area() kullanarak semantik alanlar tanımlayabilir ve yeni Modifier.gridItem(area) aşırı yüklemesini kullanarak öğeleri bu alanlara yerleştirebilir. Böylece semantik amaç, fiziksel koordinatlardan ayrılır. (Id9303, b/487503921)
  • Düzen yapılandırmalarının birleştirilmesine ve geçersiz kılınmasına olanak tanımak için FlexBoxConfig ve FlexConfig için then operatörleri ve kombinasyon fabrika işlevleri eklendi. (Icfdd8, b/475491619)
  • Kaydırma hareketleri, ofsetler ve yerleştirme animasyonları üzerinde programatik kontrol sağlamak için RevealState.drag(), SwipeToRevealDragScope işlevleri eklendi ve SwipeToReveal içinde özel flingBehavior kullanıma sunuldu. (Ibfe56, b/484185090)

Hata Düzeltmeleri

  • Metin seçimi araç çubuğunun konumunu veya öğelerini güncelleyememe sorunu düzeltildi. (Ib2566)

Harici Katkı (External Contribution)

  • SelectionContainer içinde, seçilebilir Text öğeleri arasındaki boş alanlarda fareyle seçim yapılmasına izin verin. (I93f69, b/502151445)
  • Pano uygulamasını taklit etmenin bir yolunu sağlamak için test amacıyla AndroidClipboard arayüzünü kullanıma sunma (Ie4d72, b/512924975)
  • TextAttribute commitText() ve setComposingText() varyantları için geriye dönük uyumluluk eklendi. SDK>=37 için erişilebilirlik hizmetleri, önerilen değiştirme metninin seçilip seçilmediğini duyurabilir. SDK<37 için sözlü geri bildirim etkilenmez (yani mevcut davranış). (I90e3d, b/439879822)

Sürüm 1.12.0-alpha03

19 Mayıs 2026

androidx.compose.foundation:foundation-*:1.12.0-alpha03 iptal edilir. 1.12.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Deneysel Stil API'sinde, özel stil kapsamlarına sahip olabilen özel stil türleri oluşturma desteği eklendi. Bu, bir stil tarafından ayarlanabilen özelliklerin alt kümesini oluşturmaya (ör. grafik katmanını veya metin özelliklerini tamamen kaldırma) ve kapsamın diğer stillerden bağımsız olarak genişletilmesine (ör. MediaPlayer composable'da yalnızca playing { } söz dizimini destekleme) olanak tanır. Bu değişiklik, ikili ve kaynak uyumluluğunu bozuyor. Kaynak uyumluluğunu bozan temel değişiklik, StyleScope içindeki yardımcı işlevlerin uzantı işlevlerine taşınmasıdır (ör. fun contentProperty(all: Dp) artık bir uzantı işlevidir). Gerekli uzantı işlevlerini veya androidx.compose.foundation.styles'dan tüm sembolleri içe aktarmak, bu yöntemleri çağıran kodun doğru şekilde derlenmesi için yeterli olmalıdır. (I1ef27, b/493676648).
  • ScrollIndicatorState uygulamaları artık ters düzenler için kaydırma uzaklığını görsel başlangıçtan doğru şekilde döndürüyor ve göstergelerin doğru görsel sunumunu sağlıyor. (Ia3fae, b/503604996)
  • Düzeltmeyi kontrol etmek için isClearNestedScrollCoroutineScopeFixEnabled işareti eklendi. (Ibd394, b/505343254)

Harici Katkı (External Contribution)

  • SelectionContainer içinde metin seçimini görüntü alanının dışına sürüklerken otomatik kaydırma etkinleştirildi. (Ibcb08, b/424433794)

Sürüm 1.12.0-alpha02

6 Mayıs 2026

androidx.compose.foundation:foundation-*:1.12.0-alpha02 iptal edilir. 1.12.0-alpha02 sürümü bu commit'leri içerir.

Sürüm 1.12.0-alpha01

22 Nisan 2026

androidx.compose.foundation:foundation-*:1.12.0-alpha01 iptal edilir. 1.12.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Metin alanının yüksekliğini minimum/maksimum satır sayısına göre hesaplamada optimizasyonu etkinleştirmek için yeni bir isBasicTextFieldHeighInLinesOptimizationEnabled işareti eklendi. Bu ayar varsayılan olarak açık olmalıdır. Metin alanı düzeninde gerileme tespit ederseniz ve bu işareti devre dışı bırakmak sorunu düzeltirse lütfen Compose ekibine bir hata kaydı göndererek durumu incelemelerini isteyin. (Idffae, b/486871837, b/487546327)
  • Hareket sırasında metin düzenlerken textfield seçimini düzeltir. (I6fd98, b/490509264)
  • Compose Foundation'da StyleScope'e colorFilter desteği eklendi. (I553a0)
  • StyleScope listesine textMotion eklendi. (Id8523, b/482301609)
  • Android'de desteklenen klavye seçenekleri grubunu tamamlamak için tarih, saat, tarih saat, işaretli ondalık gibi ek KeyboardType seçenekleri ekler. (I3713e, b/202353328)
  • İşareti kaldır isNestedDraggablesTouchConflictFixEnabled (I79e52, b/485966180)
  • İşareti kaldır isDelayPressesUsingGestureConsumptionEnabled (I533dd, b/485966702)
  • Kararlı sürümde yayınlandığı için isBringIntoViewRltBouncyBehaviorInPagerFixEnabled işaretini kaldırın. (I73fb2, b/485967682)
  • Kararlı sürümde yayınlandığı için isCacheWindowRefillFixEnabled işaretini kaldırın. (Ic7505, b/485967875)
  • ComposeFoundationFlags#isNonSuspendingPointerInputInCombinedClickableEnabled kaldırıldı (I1f76c, b/485966320, b/477836055)
  • StyleScope içinde PaddingValues kabul eden contentPadding ve externalPadding için aşırı yüklemeler eklendi. (I3a6ce, b/493154098)
  • VelocityTracker, Android Framework tarafından sağlanan uygulamayı kullanacak şekilde değiştirildi (AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled ile yapılandırılabilir). (Ibc7e2, b/359962905)

Hata Düzeltmeleri

  • Aynı mülkteki animasyonların çakışmasını önlemek için animasyonların ve özelliklerin izlenme şekli değiştirildi. (I4921f)
  • Bağlam menüsünün, TextField(veya seçilebilir metin) bir iletişim kutusundayken kilitlenmesine neden olan hata düzeltildi. (I21461, b/441759435)
  • Compose compileSdk, API 37'ye güncellendi. Bu nedenle, Compose kullanılırken minimum AGP sürümü 9.2.0 olmalıdır. (Id45cd, b/413674743)
  • Izgarada klavye odağı ve erişilebilirlik geçişinin, görsel Z şeklindeki yerleştirme sırası yerine öğe kompozisyon sırasını takip etmesiyle ilgili sorun düzeltildi. (I122a8, b/494096503)
  • Başlangıç ve bitiş tutamaçları yatay olarak hizalandığında (ör. boş bir satırda sona eren birden fazla satırda seçim yapıldığında) metin seçimi araç çubuğunun yanlışlıkla gizlenmesine neden olan hata düzeltildi. (I391d2, b/497724722)
  • FlexBox içinde, öğelerin kapsayıcı sınırlarını aştığında doğru şekilde küçülmemesine neden olan sorun düzeltildi. (Ia741d, b/480797591)
  • foregroundColor öğesinin doğru şekilde geçersiz kılınmamasıyla ilgili hata düzeltildi. (I74abe, b/493245886)
  • Compose için inset işleyici ayrılıp yeniden eklendiğinde eski insetlerin düzeltilmesi. (I1e905, b/491346046, b/486084139)
  • Bir kullanıcı imleci kaydırılabilir alanın dışına taşıdığında imleç artık görünür alana kaydırılıyor. (If694c, b/266094055)

Sürüm 1.11

Sürüm 1.11.4

1 Temmuz 2026

androidx.compose.foundation:foundation-*:1.11.4 iptal edilir. 1.11.4 sürümü bu commit'leri içerir.

Sürüm 1.11.3

17 Haziran 2026

androidx.compose.foundation:foundation-*:1.11.3 iptal edilir. 1.11.3 sürümü bu commit'leri içerir.

Sürüm 1.11.2

19 Mayıs 2026

androidx.compose.foundation:foundation-*:1.11.2 iptal edilir. 1.11.2 sürümü bu commit'leri içerir.

Sürüm 1.11.1

6 Mayıs 2026

androidx.compose.foundation:foundation-*:1.11.1 iptal edilir. 1.11.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • FlexBox içinde, öğelerin kapsayıcı sınırlarını aştığında doğru şekilde küçülmemesine neden olan sorun düzeltildi. (Ia741d, b/480797591)

Sürüm 1.11.0

22 Nisan 2026

androidx.compose.foundation:foundation-*:1.11.0 iptal edilir. 1.11.0 sürümü bu commit'leri içerir.

Sürüm 1.11.0-rc01

8 Nisan 2026

androidx.compose.foundation:foundation-*:1.11.0-rc01 iptal edilir. 1.11.0-rc01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Hareket sırasında metin düzenlerken textfield seçimini düzeltir. (I2ba33, b/490509264)

Sürüm 1.11.0-beta02

25 Mart 2026

androidx.compose.foundation:foundation-*:1.11.0-beta02 iptal edilir. 1.11.0-beta02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Bu düzeltmenin kullanıma sunulmasını kontrol etmek için isReverseLayoutNestedScrollConnectionInPagerFixEnabled işareti eklendi. (I07404, b/399800244)
  • Bu özelliğin kullanıma sunulmasını kontrol etmek için isSkipItemPlacementAnimationFixEnabled'ı kullanıma sunuyoruz. (Id665d, b/455884472, b/352584409, b/410487464, b/372509998)
  • GridTrackSize listesine MinMax(min: Dp, max: Fr) eklendi. Bu sayede geliştiriciler, esnek bir parçanın minimum sınırlarını açıkça tanımlayabilir. MinMax(0.dp, 1.fr) kullanıldığında, doğal ölçüm sorguları başarıyla atlanır. Bu sayede, LazyColumn ve LazyRow gibi SubcomposeLayout bileşenleri, kilitlenme olmadan esnek ızgara parçalarına yerleştirmek güvenli hale gelir. (Ieb8c2, b/483822148)

Hata Düzeltmeleri

  • FlexBox'da öğeler minimum doğal boyutlarına ulaştığında yanlış şekilde küçülmesine neden olan hata düzeltildi. Öğeler artık kullanılmamış küçültme alanını kardeş öğelerle doğru şekilde paylaşıyor. Ayrıca, FlexBox artık ana eksendeki öğeleri yapay olarak sıkıştırmayacak. Öğeler kapsayıcıya sığacak kadar küçülemiyorsa ana ekseni görsel olarak taşacak. Kırpma işlemi yapmak istiyorsanız Modifier.clipToBounds() simgesini kullanın. (Ief751, b/480797591)
  • Keep Around'un yasa dışı indekslere erişmesini önleyin. (I19121, b/485626636)
  • Izgarada, dolaylı olarak oluşturulan satırlar veya sütunlar arasındaki boşlukların kapsayıcının toplam boyut hesaplamasına dahil edilmemesi nedeniyle içeriğin kırpılmasına yol açan sorun düzeltildi. (Ib9df8, b/480372415)
  • Clipboard ve ClipboardManager artık ilk yöntem çağrısında sisteme ait hizmeti istiyor (If0016, b/487947860)
  • Row'da Arrangement.spacedBy ile ilgili olarak, sağdan sola dillerde taşan öğelerin yanlış düzene ve aralığa neden olduğu sorun düzeltildi. (I44e53, b/476006478)

Sürüm 1.11.0-beta01

11 Mart 2026

androidx.compose.foundation:foundation-*:1.11.0-beta01 iptal edilir. 1.11.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • BasicTextField'nın dahili minimum boyut hesaplamaları optimize edildi. Bunlar ComposeFoundationFlags#isBasicTextFieldMinSizeOptimizationEnabled tarafından kontrol edilir. Gerekirse bunları devre dışı bırakabilirsiniz. (I70ade)
  • Deneysel Style API'nin bir parçası olan rememberUpdatedStyleState eklendi. Birleştirilebilir bileşenin parametreleri (ör. enabled) stil durumuna (Idf7ff, b/485510967) kopyalandığında StyleState örnekleri oluşturulurken rememberUpdated kullanılmalıdır.
  • Ölçek ve kaydırma değerlerini almak için PointerInputChange ve HistoricalChange özelliklerini yeniden adlandırır. (I989a8, b/481333653)
  • Trackpad testi API'lerine, trackpad hareketleri için farklı eğrileri ve girişleri simüle etmeye yönelik daha fazla işlev eklendi. (I290fb, b/473603145, b/479213358)
  • Yeni PointerEventType.Pan ve PointerEventType.PanStart, PointerEventType.PanMove ve PointerEventType.PanEnd olarak ayrılıyor. Benzer şekilde, PointerEventType.Scale, PointerEventType.ScaleStart, PointerEventType.ScaleChange ve PointerEventType.ScaleEnd olarak ayrılmıştır. Bu bölme, platform tarafından yorumlanan kaydırma ve ölçeklendirme hareketlerinin başlangıcı ve bitişiyle ilgili ek bilgilerin iletilmesine olanak tanır. Bu sayede Compose'daki işaretçi girişi işleyicileri, etkinlikleri uygun şekilde algılamak için bu bilgileri kullanabilir ve özellikle kaydırma veya ölçeklendirme işleminin ne zaman tamamlandığını bilebilir. (I4daf6, b/479285849, b/481333653)
  • Mevcut boyuta göre ızgara parçalarının tanımlanmasına olanak tanımak için constraints, GridConfigurationScope'ye eklendi. (I80a41, b/481205205, b/481205205)
  • FlexBox DSL artık FlexBoxConfig ve Modifier.flex içinde yapılandırma için özellikler (ör. grow = 1f) yerine işlevler(ör. grow (1f)) kullanıyor. (I8dbae, b/475491619)

Hata Düzeltmeleri

  • OutputTransformation karakterinin bazı IME'lerde karakterlerin iki kez eklenmesine neden olan hata düzeltildi. (I9fdc0)
  • Dokunmatik yüzeyde kaydırma hareketlerine hızlıca kaydırma desteği eklendi (I55f8a, b/479285849)
  • Deneysel Style API (I67437) için karşılaştırma ölçütleri ekleyin.

Harici Katkı (External Contribution)

  • Metin değiştirme önerileri kullanılabilir olduğunda çeviri yazım girişinin bulunabileceği farklı durumların belirlenmesine yardımcı olmak için InputTextSuggestionState özelliği ekleyin. Ayrıca, mevcut çeviri yazısı metin kompozisyonu aralığını izlemek için TextCompositionRange özelliğini kullanıma sunar. Boş değer, kompozisyonun yerinde olmadığını gösterir. (I7a67f, b/476472318)
  • BasicTooltipBox işlevine, Box'ın aynı ada sahip parametresine benzer şekilde propagateMinConstraints yapılandırmasına olanak tanıyan yeni bir aşırı yükleme eklendi. Bu sayede, minimum kısıtlamalar BasicTooltipBox tarafından gevşetilmeden doğrudan BasicTooltipBox alt öğelerine aktarılabilir. Thanks Steven Schoen! (Ib145f, b/467532639, b/301605744)

Sürüm 1.11.0-alpha06

25 Şubat 2026

androidx.compose.foundation:foundation-*:1.11.0-alpha06 iptal edilir. 1.11.0-alpha06 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Birleştirilebilir işlevlerin özelleştirilmesini tutarlı bir şekilde sağlamaya olanak tanıyan deneysel bir stil API'si sunar. Bu API aktif olarak geliştirilmektedir ve kararlı hale gelmeden önce önemli değişikliklere uğrayabilir. Bu API'nin nasıl kullanılacağıyla ilgili ayrıntılar için eklenen belgelere bakın. (I7fed2, b/455788242)

Hata Düzeltmeleri

  • Modifier.combinedClickable, optimizasyon olarak askıya alma işaretçi girişini kullanmayacak şekilde yeniden yazılır. Bu özellik, yeni uygulamada bir hatayla karşılaşırsanız devre dışı bırakabileceğiniz ComposeFoundationFlags.isNonSuspendingPointerInputInCombinedClickableEnabled işaretiyle etkinleştirilir.(Iea684)

Bilinen Sorunlar

  • Modifier.combinedClickable yeniden yazma işlemi, uzun tıklama davranışında gerilemeye neden oluyor. Bu durum, bazı cihazlarda derin basmaların tekrarlanan uzun tıklamaları tetiklemesine yol açabiliyor. Bu sorun, sonraki sürümde düzeltilecektir. O zamana kadar bu sorunu önlemek için ComposeFoundationFlags.isNonSuspendingPointerInputInCombinedClickableEnabled=false değerini ayarlayabilirsiniz.

Sürüm 1.11.0-alpha05

11 Şubat 2026

androidx.compose.foundation:foundation-*:1.11.0-alpha05 iptal edilir. 1.11.0-alpha05 sürümü bu commit'leri içerir.

API Değişiklikleri

  • İç içe yerleştirilmiş sürüklenebilir öğelerle ilgili çakışmaları çözmek için isNestedDraggablesTouchConflictFixEnabled işareti eklendi. Kullanıcı deneyimi açısından, kullanıcılar yatay hareket yerine dikey hareket yaptığında daha fazla özgürlük ve belirsizlik olduğundan dikey sürüklemeleri yatay sürüklemelere göre daha çok tercih edeceğiz. (I273c7, b/252334353, b/269627294, b/363198504, b/442390269, b/419580124)
  • Dokunmatik yüzey hareketleri ve dokunmatik yüzey giriş etkinliklerinin fareye dönüştürülmesi için destek eklendi. Bu değişiklikle birlikte, tablet veya dizüstü bilgisayarlarda olduğu gibi imleci kontrol eden trackpad işaretçi etkinlikleri genellikle fare işaretçileri olarak raporlanacak. Kaydırma ve ölçeklendirme hareketleri de işaretçi etkinliği değişikliklerinde ek bilgilerle birlikte bildirilecek. Bu değerlerin ayarlanacağını belirten yeni bir PointerEventType.Pan ve PointerEventType.Scale eklenecek (Id071a, b/315527861, b/459831570).
  • isDelayPressesUsingGestureConsumptionEnabled ile tanışın. Bu işaret etkinleştirildiğinde, sürükleme hareketi içeren kapsayıcılarda basma işlemi geciktirilir. Bu, Modifier.draggable temel alınarak oluşturulan ve daha önce basmayı geciktirmeyen kapsayıcılar için davranış değişikliğini içerir. (I53f24, b/203141462)
  • isDetectTapGesturesImmediateCoroutineDispatchEnabled işareti kaldırıldı ve DetectTapGesturesEnableNewDispatchingBehavior işareti kullanımdan kaldırıldı (I9bba3).

Hata Düzeltmeleri

  • ``OutputTransformation kullanılırken IndexOutOfBoundsException içinde BasicTextField metin silme ile ilgili sorun düzeltildi. (I20ee1)
  • GridTrackSize.Auto davranışını değiştirdi. Artık min-content ile max-content arasındaki parçaları boyutlandırıyor. (Ifa22e, b/477748472)

Harici Katkı (External Contribution)

  • NumPad hareket tuşları (I1ff12) için destek ekleyin.

Sürüm 1.11.0-alpha04

28 Ocak 2026

androidx.compose.foundation:foundation-*:1.11.0-alpha04 iptal edilir. 1.11.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Aynı ofsette birden fazla sabitleyicinin bulunduğu bazı senaryolarda AnchoredDraggableState'nın targetValue değerinin yanlış olmasına neden olan hata düzeltildi. Başka bir sabitleme noktasıyla aynı dengeye sahip bir sabitleme noktasına yerleştiğinde targetValue, bu dengedeki sabitleme noktalarının sonuncusunu yanlışlıkla döndürüyordu. Artık currentValue'ın ofsetinde yerleştiğinde currentValue değerini döndürüyor. (I66a7a, b/476365336)
  • Row, Column, FlowRow ve FlowColumn'in üst kümesi olan, yapılandırılabilir bir düzen sistemi olan FlexBox'ı kullanıma sunduk. FlexBoxConfig ve Modifier.flex aracılığıyla flex-grow, flex-shrink, özel sarmalama, yön değişikliği ve ayrıntılı hizalama kontrolü gibi özellikleri destekler. (I44780)
  • CSS Grid'den esinlenerek oluşturulan yeni bir 2D düzen oluşturma işlevi olan Grid kullanıma sunuldu. Bu ilk sürüm, Fixed, Percentage, Flex gibi çeşitli parça boyutlarının yanı sıra config bloğu aracılığıyla içeriğe dayalı seçenekler içeren açık ızgara yapıları tanımlamaya olanak tanır. Temel düzen mantığı, Modifier.gridItem() kullanılarak öğelerin ızgara içinde açıkça yerleştirilmesini destekler. Grid ile ilgili tüm API'ler şu anda deneyseldir ve @OptIn(ExperimentalGridApi::class) ile etkinleştirilmesi gerekir. Bu yeni düzenle ilgili geri bildirimlerinizi bekliyoruz. (I04907, b/462550392)

Sürüm 1.11.0-alpha03

14 Ocak 2026

androidx.compose.foundation:foundation-*:1.11.0-alpha03 iptal edilir. 1.11.0-alpha03 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LookaheadScope I286ad içinde kullanıldığında LazyStaggeredGrid uygulamasındaki bellek sızıntısını düzeltme

Sürüm 1.11.0-alpha02

17 Aralık 2025

androidx.compose.foundation:foundation-*:1.11.0-alpha02 iptal edilir. 1.11.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • MultiModalInjectionScope API'leri artık kararlı sürümde. performKeyInput ve performRotaryScrollInput ile bunların temel anahtar ve döner API'leri bu kapsamdadır. Deneysel ek açıklama kaldırıldı. (Ie8bbc, b/261561237)
  • isNonSuspendingPointerInputInClickableEnabled bayrağı kaldırıldı. (I6a168, b/455591971)

Sürüm 1.11.0-alpha01

3 Aralık 2025

androidx.compose.foundation:foundation-*:1.11.0-alpha01 iptal edilir. 1.11.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Kaydırılabilir kapsayıcılara özel kaydırma göstergeleri eklemeye olanak tanıyan Modifier.scrollIndicator özelliği kullanıma sunuldu. ScrollIndicatorFactory arayüzü, görünüm ve davranışlarını tanımlayarak kaydırma göstergeleri oluşturmanıza olanak tanır. (I89322)
  • ComposeFoundationFlags.isTextFieldDpadNavigationEnabled kaldırıldı. Yeni davranış artık her zaman etkin. (I3f034)
  • Önbellek penceresi yeniden doldurma düzeltmesinin kullanıma sunulmasını kontrol etmek için isCacheWindowRefillFixEnabled özelliğini kullanıma sunuyoruz. (I4e52b, b/454439658)
  • ComposeFoundationFlags.isKeepInViewFocusObservationChangeEnabled kaldırıldı. Yeni davranış artık her zaman etkin. (I7cbd4)
  • Modifier.onFirstVisible(), davranışının yanıltıcı olması ve her zaman adın iddia ettiği sözleşmeye uymaması nedeniyle kullanımdan kaldırıldı. Örneğin, LazyColumn öğesine eklendiğinde bu geri çağırma, kaydırma işleminden sonra bu öğe her görünür hale geldiğinde çağrılır. Bu adla değiştiriciyi kullananlar, bu sonucu beklememiş olabilir. Bunun yerine Modifier.onVisibilityChanged() kullanılması ve düzenin daha önce görünür olup olmadığının belirli kullanım alanının gereksinimine göre manuel olarak izlenmesi önerilir. (Ia7095, b/447601783)
  • onRemeasured() geri araması gerektiğinde kullanılan MeasuredSizeAwareModifierNode özelliği kullanıma sunuldu. Lütfen diğer geri çağırmalara ihtiyacınız olmadığında daha genel LayoutAwareModifierNode kullanmak yerine doğrudan bu arayüzü kullanın. (If6fb0)
  • visible değiştiricisini kullanıma sunar. Bu değiştirici, Composable'ın içeriğini kapladığı alanı etkilemeden çizme işlemini atlamak için kullanılabilir. (Ia6871, b/158837937)

Sürüm 1.10

Sürüm 1.10.6

25 Mart 2026

androidx.compose.foundation:foundation-*:1.10.6 iptal edilir. 1.10.6 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • ComposeFoundationFlags.isPausableCompositionInPrefetchEnabled, kararlılıkla ilgili endişeleri gidermek için varsayılan olarak devre dışıdır. (I73960, b/482223006, b/488433633)

Sürüm 1.10.5

11 Mart 2026

androidx.compose.foundation:foundation-*:1.10.5 iptal edilir. 1.10.5 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • OutputTransformation kullanılırken ve metin silinirken BasicTextField'te IndexOutOfBoundsException sorunu düzeltildi. (I20ee1)

Sürüm 1.10.4

25 Şubat 2026

androidx.compose.foundation:foundation-*:1.10.4 iptal edilir. 1.10.4 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Farklı bir kapsamdan (ör. Row içinde ColumnScope.align) hizalama değiştiricisi kullanmanın yanlış konumlandırmaya neden olduğu gerileme hatası düzeltildi. (6888f2b, b/477639546)

Sürüm 1.10.3

11 Şubat 2026

androidx.compose.foundation:foundation-*:1.10.3 iptal edilir. 1.10.3 sürümü bu commit'leri içerir.

Sürüm 1.10.2

28 Ocak 2026

androidx.compose.foundation:foundation-*:1.10.2 iptal edilir. 1.10.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Etkin metin seçimi olan bir ekrandan geri gidildiğinde yaşanan kilitlenme sorunu düzeltildi. (I9f540, b/444482508)

Sürüm 1.10.1

14 Ocak 2026

androidx.compose.foundation:foundation-*:1.10.1 iptal edilir. 1.10.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Metin seçimi, yatay olarak hizalanmış bir metin örneğinden diğerine uzandığında kilitlenme sorunu düzeltildi. I351311, b/439758956

Sürüm 1.10.0

3 Aralık 2025

androidx.compose.foundation:foundation-*:1.10.0 iptal edilir. 1.10.0 sürümü bu commit'leri içerir.

Sürüm 1.10.0-rc01

19 Kasım 2025

androidx.compose.foundation:foundation-*:1.10.0-rc01 iptal edilir. 1.10.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • isCacheWindowForPagerEnabled işareti devre dışı bırakıldı. (Iffdec, b/458193632)

Sürüm 1.10.0-beta02

5 Kasım 2025

androidx.compose.foundation:foundation-*:1.10.0-beta02 iptal edilir. 1.10.0-beta02 sürümü bu commit'leri içerir.

Sürüm 1.10.0-beta01

22 Ekim 2025

androidx.compose.foundation:foundation-*:1.10.0-beta01 iptal edilir. 1.10.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Tüm dolaylı dokunma API'lerini, işaretçi giriş API'leriyle eşleşmesi için dolaylı işaretçi API'leri adını kullanacak şekilde günceller. (I238ce, b/451607214)
  • PagerState.currentPageOffsetFraction öğesine @FrequentlyChangingValue ile açıklama ekleyin. (Idfaab)

Hata Düzeltmeleri

  • Sağdan sola düzen yönleri için kayan yazı davranışını düzeltir. (Ib8be3)

Sürüm 1.10.0-alpha05

8 Ekim 2025

androidx.compose.foundation:foundation-*:1.10.0-alpha05 iptal edilir. 1.10.0-alpha05 sürümü bu commit'leri içerir.

API Değişiklikleri

  • PaddingValues artık yaygın dolgu hesaplamalarını basitleştirmek için toplama ve çıkarma işlemlerini destekliyor. (I327e1, b/244468479)

Hata Düzeltmeleri

  • ComposeFoundationFlags.isPausableCompositionInPrefetchEnabled varsayılan olarak etkindir. Bu, önceden getirme sırasında yapmamız gereken işi daha iyi dağıtmamıza olanak tanıyan bir performans optimizasyonudur. Örneğin, LazyColumn'nın sonraki öğesinin parçaları için yalnızca bir kullanıcı arayüzü karesi sırasında kompozisyon oluşturabilir ve ardından geri kalanını sonraki karelerde oluşturmaya devam edebiliriz. (I4c7fe)

Sürüm 1.10.0-alpha04

24 Eylül 2025

androidx.compose.foundation:foundation-*:1.10.0-alpha04 iptal edilir. 1.10.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ScrollIndicatorState uygulaması PagerState için eklendi. (I113b7)
  • ScrollIndicatorState uygulaması LazyStaggeredGridState için eklendi. (I1028e)
  • ScrollIndicatorState uygulaması LazyGridState için eklendi. (I9e50c)
  • ScrollIndicatorState uygulaması LazyListState için eklendi. (I5ee29)
  • ScrollIndicatorState uygulaması ScrollState için eklendi. (I27f66)
  • ScrollableState arayüzünde scrollIndicatorState özelliğini kullanıma sunma (Idca93)
  • isWindowInsetsModifierLocalNodeImplementationEnabled işareti kaldırıldı (I15e8f, b/440964232)
  • Bileşenin, içeriği sınırlarına kırpma ve içeriğin kaydırma yönünü Oryantasyon, RTL ve reverseScrolling işaretine göre otomatik olarak işleme davranışlarıyla kaydırılabilir hale getirmek için kullanılabilecek scrollableArea() değiştiricisini kullanıma sunun. (I9471b, b/316559454)

Sürüm 1.10.0-alpha03

10 Eylül 2025

androidx.compose.foundation:foundation-*:1.10.0-alpha03 iptal edilir. 1.10.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeFoundationFlags.isNonComposedClickableEnabled kaldırıldı (I0dfc0, b/406228525)
  • FillableData örnekleri oluşturmak için fabrika işlevlerini yardımcı nesneye taşıyın. FillableData(value) yöntemini çağırmak yerine yeni fabrika yöntemlerini kullanın: FillableData.createFrom(value). (I2e200, b/441719650)
  • Odak araması için sınırlı düzenin ötesinde performans göstermek üzere BeyondBoundsLayoutModifierNode yeni bir Değiştirici düğümü kullanıma sunuldu. (I39be1, b/416133658)
  • ScrollState.value, @FrequentlyChangingValue mülkü olarak işaretlenir. (I4723d)
  • LazyLayoutKeyIndexMap ve varsayılan uygulama için bir fabrika kullanıma sunuldu. (I4fd0c, b/415038029)

Hata Düzeltmeleri

  • Sütun ve satır artık öğenin gerçek boyutunu Modifier.align'ya doğru şekilde iletiyor. Böylece, özel Modifier.align uygulamasının yanlış bir 0 değeri almasına neden olan sorun çözülüyor. (I8194f, b/439716351)

Sürüm 1.10.0-alpha02

27 Ağustos 2025

androidx.compose.foundation:foundation-*:1.10.0-alpha02 iptal edilir. 1.10.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • isFlingContinuationAtBoundsEnabled işareti kaldırıldı. (I6b84f)
  • isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled işareti kaldırıldı. (I62380)
  • isOnScrollChangedCallbackEnabled işareti kaldırıldı. (I667dc)
  • isAutomaticNestedPrefetchEnabled işareti kaldırıldı. (I4f416)
  • DragGesturePickUpEnabled işareti kaldırıldı. (Ib8500)
  • Kaydırma çubuğu durumunu temsil etmek için ScrollIndicatorState API'sini kullanıma sunma (I5e229)

Hata Düzeltmeleri

  • Modifier.anchoredDraggable kullanıldığında confirmValueChange'nin çağrılmamasına neden olan hata düzeltildi. (Iff7cc)

Sürüm 1.10.0-alpha01

13 Ağustos 2025

androidx.compose.foundation:foundation-*:1.10.0-alpha01 iptal edilir. 1.10.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Pager'ın önceden getirme stratejisini, kaydırma yönünde varsayılan 1 öğe yerine önbellek penceresini kullanacak şekilde güncelleyin. Artık Pager'da ilk önceden getirme işlemi varsayılan olarak etkinleştiriliyor ve önceden getirme işlemi, 1 görüntü alanı değerindeki pencerenin boyutuna göre yapılıyor. Yani, 1 görüntü alanının tamamını önceden getirilmiş öğelerle doldurmaya çalışacağız. Öğeler daha uzun süre saklanır. (I4d45e, b/292136289)
  • Yeni uygulama davranış değişikliğine neden olursa WindowInsets performans optimizasyonunun devre dışı bırakılmasına olanak tanıyan ComposeFoundationLayoutFlags.isWindowInsetsOptimizationEnabled işareti eklendi. (I8e912)
  • SnapFlingBehavior artık tutturma sırasında tutturma animasyonu özelliklerinin aşılmasına izin veriyor. Bu, örneğin snapAnimationSpec olarak esnek bir yay özelliği belirterek esnek bir tutturma animasyonu oluşturmanıza olanak tanır. Yakalama spesifikasyonuyla yaklaşım gerçekleştirilirken aşırı değerler yoksayılmaya devam ediyor. (I373c2)
  • ComposeView içindeki fare veya dokunmatik alanla yapılan işaretçi aşağı hareketleri, işaretçi aşağı hareketi odaklanılan düğümün sınırları içinde gerçekleşmezse artık odağı otomatik olarak temizleyecek. Bu, işaretçi giriş cihazları kullanılırken mevcut davranıştan daha çok beklenen bir "odaklanmayı temizlemek için dokunma" kullanıcı deneyimiyle sonuçlanır. Bu davranış, yeni bir AbstractComposeView.isClearFocusOnPointerDownEnabled API ile devre dışı bırakılabilir. (I6322b, b/282963174)
  • Artık Scrollable, 2 boyutlu fare tekerleği kaydırma etkinliklerini daha iyi destekliyor. MouseInjectionScope kullanım alanlarını test etmeye yardımcı olacak yeni bir test API'si kullanıma sunuldu. Ayrıca, MouseInjectionScope içinde kaydırma yöntemleri için yeni bir aşırı yükleme ve isMouseWheel1DAxisLockingEnabled (I136df) adlı yeni davranışı kontrol etmek için bir işaretçi kullanıma sunduk.
  • Optimizasyon için işaretçi girişini askıya almak yerine ham işaretçi girişi kullanacak şekilde DragGestureNode güncellendi. Değişiklikler isNonSuspendingPointerInputInDraggableEnabled (I0fa4b) işaretinin arkasına eklenir.
  • Bazı AnchoredDraggable API'ler @FrequentlyChangingValue ile açıklama eklenerek güncellendi. offset, requireOffset ve progress sık sık değişir ve kompozisyonda okunmamalıdır. Lütfen bu değerlere düzen ve çizim aşamalarından, efektlerden veya kompozisyonun dışındaki diğer yerlerden erişin. (I05539)
  • isOnScrollChangedCallbackEnabled, isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled, isFlingContinuationAtBoundsEnabled, isAutomaticNestedPrefetchEnabled, DragGesturePickUpEnabled, isPointerInteropFilterDispatchingFixEnabled, isNestedScrollInteropPostFlingFixEnabled, isNestedScrollDispatcherNodeFixEnabled işaretleri kaldırıldı (I36c18)
  • Otomatik doldurma özelliğinin başarılı doldurma vurgusunun fırçasını değiştirmek için kullanılabilecek CompositionLocal simgesini kullanıma sunduk. (I52329)
  • FocusProperties'ya özelleştirilebilir odak dikdörtgeni eklendi. Artık odaklanılabilir öğenin sınırlayıcı kutusunu varsayılan olarak ayarlamak yerine özel bir odak alanı tanımlayabilirsiniz. Bu bilgiler, odak geçişi sistemi ve kaydırılabilir kapsayıcıların görünümde tutma mantığı tarafından kullanılır. (Id6555, b/368378073)
  • Tight adlı yeni bir LineHeightStyle.Mode eklendi. Bu mod, daha uzun glifleri kesebilse bile daha küçük satır yüksekliklerinin uygulanmasına yardımcı olur. (Id3849)
  • Bir türün diğerinden nasıl dönüştürüleceğini bildiği varsayılarak farklı türler arasında otomatik enterpolasyona olanak tanıyan yeni bir Interpolatable arayüzü kullanıma sunuldu. Bu arayüz, Fırça ve Şekil gibi çeşitli kompozisyon türlerinde kullanılır ancak harici olarak da kullanılabilir. (I58eab)
  • Dolaylı giriş etkinlikleri ve kaydırma için kullanılacak koordinat eksenini belirtme yöntemi ekler. (I58e7c)
  • Ekran kesiminin yolunu almak için yeni WindowInsets.cutoutPath API'si eklendi (Ib90b1, b/279636456)
  • isWindowInsetsDefaultPassThroughEnabled işareti kaldırıldı. WindowInsets, varsayılan olarak tüketilmeyecek şekilde ayarlandı. Böylece alt Görünümler varsayılan olarak WindowInsets alabilir. (I888e0, b/412469666)

Hata Düzeltmeleri

  • isNonSuspendingPointerInputInDraggableEnabled şimdilik devre dışı bırakılmalıdır. (Ia41c4)
  • Varsayılan minSdk'nın API 21'den API 23'e taşınması (Ibdfca, b/380448311, b/435705964, b/435705223)
  • Bu API'lerin diğer DraggableAnchors API'leriyle uyumlu olarak Float.NaN döndürmesi gerektiğini belirten güncellenmiş DraggableAnchors' minPosition/maxPosition dokümanları. (I0460a)
  • Sabitler boşsa DraggableAnchors#closestAnchor öğesinin kilitlenmesine neden olan hata düzeltildi (I4e646).
  • DraggableAnchors için performans iyileştirmeleri (If4065, I0460a)
  • TextFieldState.edit { } artık geri alma geçmişini temizlemiyor. Bunun yerine bağımsız bir geri alma girişi oluşturur. İstenen davranış, edit çağrısından sonra geri alma yığınını temizlemekse lütfen TextFieldState.undoState.clearHistory() kullanın. (I12c14)
  • SelectionContainer ve BasicTextField(value, onValueChange) aşırı yüklemesinde kelime seçmek için iki kez dokunma desteği eklendi. (Ibb06a)
  • AutoboxingStateValuePropertyDetector'nın hem K1 hem de K2 ile uyumlu olması için küçük bir hata düzeltildi (Ie81c1).
  • AndroidView'lar tarafından yapılan requestRectangleOnScreen istekleri artık Compose'a doğru şekilde yayılıyor. Bu sayede, EditText gibi görünümlerle etkileşimde bulunulduğunda ekran üzerinde kalır. (Ibbf4c)
  • Sütun ve satır artık öğenin gerçek boyutunu Alignment.Vertical.align ve Alignment.Horizontal.align'ye doğru şekilde iletiyor. Böylece, özel hizalama uygulamalarının yanlış 0 değeri almasına neden olan sorun çözülüyor. (I3e460, b/349722072)

Sürüm 1.9

Sürüm 1.9.5

19 Kasım 2025

androidx.compose.foundation:foundation-*:1.9.5 iptal edilir. 1.9.5 sürümü bu commit'leri içerir.

Sürüm 1.9.4

22 Ekim 2025

androidx.compose.foundation:foundation-*:1.9.4 iptal edilir. 1.9.4 sürümü bu commit'leri içerir.

Sürüm 1.9.3

8 Ekim 2025

androidx.compose.foundation:foundation-*:1.9.3 iptal edilir. 1.9.3 sürümü bu commit'leri içerir.

Sürüm 1.9.2

24 Eylül 2025

androidx.compose.foundation:foundation-*:1.9.2 iptal edilir. 1.9.2 sürümü bu commit'leri içerir.

Sürüm 1.9.1

10 Eylül 2025

androidx.compose.foundation:foundation-*:1.9.1 iptal edilir. 1.9.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LazyLists'da LazyLayoutCacheWindow kullanılırken yaşanan kilitlenme sorunu düzeltildi (c39f5f3).

Sürüm 1.9.0

13 Ağustos 2025

androidx.compose.foundation:foundation-*:1.9.0 iptal edilir. 1.9.0 sürümü bu commit'leri içerir.

1.8.0 sürümünden beri yapılan önemli değişiklikler

  • Compose ile birlikte gelen hata analizi kontrolleri artık minimum 8.8.2 AGP sürümü gerektiriyor. AGP'yi yükseltemiyorsanız gradle.properties dosyanızda android.experimental.lint.version=8.8.2 (veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.
  • Önemli değişiklik: Bir Indication parametresi içermeyen clickable, combinedClickable,selectable, toggleable ve triStateToggleable aşırı yüklemeleri artık yalnızca LocalIndication kullanılarak sağlanan IndicationNodeFactory örneklerini destekliyor. Bu değişiklik, bu Compose sürümünü kullanarak bu değiştiricilerin kullanımlarını yeniden derlediğinizde geçerli olur. İkili / geçişli bağımlılıklar etkilenmez. LocalIndication için kullanımdan kaldırılmış bir Indication uygulaması sağlıyor ve bu API'leri kullanıyorsanız bu durum, çalışma zamanında kilitlenmeye neden olur. Bu davranış değişikliği, performansın iyileştirilmesi ve bu değiştiricileri kullanan Composable işlevlerinin yeniden oluşturma sırasında atlanabilmesi için gereklidir. Bu davranış değişikliğinin kapsamı dışında geçici olarak kalmak için ComposeFoundationFlags.isNonComposedClickableEnabled=false seçeneğini kullanabilirsiniz. Böylece, bu taşıma işleminde engellenmeden Compose'u yükseltebilirsiniz. Bu işaret, kararlı bir sürüm yayınlandıktan sonra kaldırılacak. Bu sorunu çözmek için kullanımdan kaldırılan tüm Indication uygulamalarını IndicationNodeFactory kullanacak şekilde taşıyın. Aşırı yüklemeleri açık bir Indication parametresiyle de kullanabilirsiniz. Bu aşırı yüklemeler, performans nedenleriyle önerilmese de Indication'ın IndicationNodeFactory olmayan örneklerini desteklemeye devam eder. (I6bcdc, b/316914333)
  • İç içe kaydırmada hızlı kaydırma yayılımıyla ilgili bir sorunu düzeltmek için isFlingCancellationWithNestedScrollFixEnabled kullanıma sunuldu. Bu CL'de, I9326a sürümünde kaldırılan kaydırma devam ettirme davranışını geri yüklüyoruz. Çocuk kompozisyondan kaldırılırsa hızlı kaydırma animasyonu yine de iptal edilir. (I467f4, b/405910180, b/419049142, b/416784125)
  • ContentInViewNode uygulamasında scrollAnimationSpec kullanımını yeniden ekleyin. Davranış, scrollAnimationSpec desteği sonlandırılırken kaldırıldı. Bu durum, kullanım alanlarının bozulmasına neden oldu. (I1436a, b/403301605)
  • Sabitlenmiş LazyLayout. (If5db4), LazyLayoutPrefetchState ve planlama yöntemi schedulePrecomposition ve schedulePrecompositionAndPremeasure. (I4362f, b/252853717) ve LazyLayoutItemProvider (Icce09,b/261565751)
  • Oluşturma özelliğinin ViewTreeObserver.OnScrollChanged tetiklemesine izin verin. Bu davranış, isOnScrollChangedCallbackEnabled işaretiyle kullanıma sunulur. Ayrıca DelegatableNode dispatchOnScrollChanged'nın bir uzantı işlevini de kullanıma sunduk. (I34b9d, b/238109286)
  • Durum oluşturma için Modifier.scrollable2D, Scrollable2DState ve tamamlayıcı API'leri kullanıma sunun. Ayrıca, yaygın kaydırma uzantısı işlevleri de kullanıma sunuldu. (Ic61c8, b/214410040)
  • PrefetchScheduler ve özelleştirme, tüm işi otomatik olarak yapan dahili uygulama lehine kullanımdan kaldırıldı. (I3a9a6, b/420551535)
  • TextFieldState.edit { } artık geri alma geçmişini temizlemiyor. Bunun yerine bağımsız bir geri alma girişi oluşturur. İstenen davranış, düzenleme çağrısından sonra geri alma yığınını temizlemekse lütfen TextFieldState.undoState.clearHistory() kullanın. (I12c14)
  • Bağlam menüsü ve seçim araç çubuğu artık Akıllı Öğeler'i (Akıllı Seçim) destekliyor
  • state aşırı yüklemesi kullanılarak TextField çıkışının biçimlendirilmesine olanak tanıyan biçimlendirilmiş metin OutputTransformation eklendi.
  • TextField: Destek bağlam menüsü (sağ tıklama menüsü).
  • Artık bir SelectionContainer içindeki birden fazla Text composable'dan kopyalanan metinlere, ayrı Text composable'lardan gelen metinler arasına satır ayırıcı \n eklenir. (I25332, b/285036739)
  • AnnotatedString aracılığıyla özel madde işaretli listeler oluşturmak için API'yi kullanıma sunma (I1d066, b/383269496, b/139326648)
  • state BasicTextField aşırı yüklemesi, boyutu değiştiğinde imlecin görünür şekilde kaydırılmasını sağlar. (I0eb41, b/406187741)
  • Önemli değişiklik: background ve border değiştirici düğümleri artık SemanticsModifierNode'yi uyguluyor. Bu durum, anlamsal yapı ağacına yeni SemanticsNodes eklenmesine ve dolayısıyla anlamsal yapı ağacı yapısı hakkında varsayımlarda bulunan testlerde test hatalarına yol açabilir. Örneğin, onChild, onParent, onSibling ve benzeri yöntemleri kullanarak onaylamalar yapan testler, mevcut düğüm ile hedef düğüm arasına yeni bir düğüm eklenirse başarısız olabilir. Bu hataları düzeltmenin tercih edilen yolu, doğrudan hedef düğüme bir testTag eklemektir. Bir diğer yaklaşım ise onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")) gibi daha esnek bir eşleştirici kullanmaktır. (I638b5)

Sürüm 1.9.0-rc01

30 Temmuz 2025

androidx.compose.foundation:foundation-*:1.9.0-rc01 iptal edilir. 1.9.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • TextFieldState.edit { } artık geri alma geçmişini temizlemiyor. Bunun yerine bağımsız bir geri alma girişi oluşturur. İstenen davranış, edit çağrısından sonra geri alma yığınını temizlemekse lütfen TextFieldState.undoState.clearHistory() kullanın. (I12c14)

Sürüm 1.9.0-beta03

16 Temmuz 2025

androidx.compose.foundation:foundation-*:1.9.0-beta03 iptal edilir. 1.9.0-beta03 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Boş üstbilgi içeriği sağlandığında tembel ızgaralarda yapışkan üstbilgi davranışını bozan regresyon hatası düzeltildi. (e3e3400)

Sürüm 1.9.0-beta02

2 Temmuz 2025

androidx.compose.foundation:foundation-*:1.9.0-beta02 iptal edilir. 1.9.0-beta02 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Bağlam menüsünde ve seçim araç çubuğunda akıllı öğeleri destekler.

API Değişiklikleri

  • Bazı donanım klavyeleri veya TV kumandalarının, yön tuşlarını kullanarak imleci yeni TextFields içinde hareket ettirememesi ve bunun yerine odağı başka bir composable'a geçirmesine neden olan hata düzeltildi. ComposeFoundationFlag.isTextFieldDpadNavigationFixEnabled eklendi. Bu düzeltme, geri döndürülemeyecek şekilde istenmeyen bir davranışa neden olursa şimdilik devre dışı bırakılabilir. (Ie1922)

Hata Düzeltmeleri

  • Sabitlenmiş bir öğe varsa sabit başlıkların sabitlenmemesi sorununu düzeltir. (I9198d, b/385006133)
  • TextObfuscationMode.RevealLastTyped artık "TEXT_SHOW_PASSWORD" sistem ayarını takip ediyor. (I41c0c)
  • Metin araç çubuğu ilk kez açıldığında BasicTextField simgesinin yanlışlıkla "Pano yapıştırıldı" uyarısı göstermesine neden olan hata düzeltildi. (I5fda2)

Sürüm 1.9.0-beta01

18 Haziran 2025

androidx.compose.foundation:foundation-*:1.9.0-beta01 iptal edilir. 1.9.0-beta01 sürümü bu commit'leri içerir.

Zarar Veren Değişiklikler (Breaking Changes)

  • background ve border değiştirici düğümleri artık SemanticsModifierNode'yi uyguluyor. Bu durum, anlamsal yapı ağacına yeni SemanticsNodes eklenmesine ve dolayısıyla anlamsal yapı ağacı yapısı hakkında varsayımlarda bulunan testlerde test hatalarına yol açabilir. Örneğin, onChild, onParent, onSibling ve benzeri yöntemleri kullanarak onaylamalar yapan testler, mevcut düğüm ile hedef düğüm arasına yeni bir düğüm eklenirse başarısız olabilir. Bu hataları düzeltmenin tercih edilen yolu, doğrudan hedef düğüme bir testTag eklemektir. Bir diğer yaklaşım ise onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")) gibi daha esnek bir eşleştirici kullanmaktır. (I638b5)

API Değişiklikleri

  • Modifier.addTextContextMenuComponents filtresini appendTextContextMenuComponents olarak yeniden adlandırın. (I4c43f)
  • AnnotatedOutputTransformation kaldırıldı ve addStyle işlevleri TextFieldBuffer'ye taşındı. addStyle yalnızca OutputTransformation üzerinden aranabilir. (I9930a, b/417991824)
  • Clickable, askıya alma işaretçi girişini optimizasyon olarak kullanmayacak şekilde yeniden yazılır. Bu özellik bir bayrakla etkinleştirilir. Yeni uygulamada bir hatayla karşılaşırsanız ComposeFoundationFlags.isNonSuspendingPointerInputInClickableEnabled bayrağını kullanarak özelliği devre dışı bırakabilirsiniz. (I85b65)
  • İç içe kaydırmada hızlı kaydırma yayılımıyla ilgili bir sorunu düzeltmek için isFlingCancellationWithNestedScrollFixEnabled kullanıma sunuldu. Bu CL'de, aosp/3260391'de kaldırılan kaydırma devam ettirme davranışını geri yüklüyoruz. Çocuk kompozisyondan kaldırılırsa hızlı kaydırma animasyonu yine de iptal edilir. (I467f4, b/405910180, b/419049142, b/416784125)
  • WindowInsetsRulers: rulersIgnoringVisibility değeri maksimuma çıkarıldı. getDisplayCutoutBounds(), PlacementScope'nin uzantı işlevi olarak değiştirildi. WindowInsetsAnimationProperties, WindowInsetsAnimation olarak, getAnimationProperties() ise getAnimation() olarak değiştirildi. (I3816f)
  • InsetsRulers, WindowInsetsRulers adıyla ortak kodda olacak şekilde değiştirildi. API'yi basitleştirerek tüm iç kısımların WindowInsetsRulers olmasını sağladık. Cetvel dışı animasyon özellikleri AnimationProperties sınıfına çıkarıldı. WindowInsetsRulers.innermostOf(), birden fazla WindowInsetsRulers'yi birleştirmek için kullanılabilir. (I2f0c6, b/415012444)

Hata Düzeltmeleri

  • ContentInViewNode uygulamasında scrollAnimationSpec kullanımını yeniden ekleyin. Davranış, scrollAnimationSpec desteği sonlandırılırken kaldırıldı. Bu durum, kullanım alanlarının bozulmasına neden oldu. (I1436a, b/403301605)

Sürüm 1.9.0-alpha04

4 Haziran 2025

androidx.compose.foundation:foundation-*:1.9.0-alpha04 iptal edilir. 1.9.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • PrefetchScheduler ve özelleştirme, tüm işi otomatik olarak yapan dahili uygulama lehine kullanımdan kaldırıldı. (I3a9a6, b/420551535)
  • Scrollable2DState, açılı yerine canScroll yönteminde bir ofset kullanacak şekilde güncellendi. (I28694, b/417268474)
  • AnnotatedOutputTransformation içindeki addAnnotation, addStyle ile değiştirildi. (I91c6f, b/417991824)
  • Sabitlenmiş LazyLayout. (If5db4)
  • LazyLayoutPrefetchState için boş bir oluşturucu ve planlama yöntemi schedulePrecomposition ve schedulePrecompositionAndPremeasure sabitlendi. (I4362f, b/252853717)
  • PROCESS_TEXT amaç işlemleri için eklenen bağlam menüsü öğelerinde kullanılan Android'deki ProcessTextKey simgesi kullanıma sunuldu. (If0ac4)
  • Bağlam menüsü API'lerini herkese açık hale getirin. Bağlam menüsünde öğe ekleme ve kaldırma için Modifier.addTextContextMenuComponents ve Modifier.filterTextContextMenuComponents kullanıma sunuldu. Ayrıca, özelleştirilmiş bir bağlam menüsü oluşturulabilmesi için aşağıdaki temel API'ler herkese açık hale getirildi:
    • TextContextMenuProvider
    • TextContextMenuDataProvider
    • TextContextMenuData
    • TextContextMenuComponent
    • LocalTextContextMenuDropdownProvider
    • LocalTextContextMenuToolbarProvider (I1b7b0)
  • LazyLayoutItemProvider kararlı hale getirin (Icce09, b/261565751)
  • ComposeFoundationFlags.isSmartSelectionEnabled üzerinden etkinleştirilebilen/devre dışı bırakılabilen Android akıllı seçim özellikleri eklendi. Ayrıca, TextClassification işinin başlatıldığı CoroutineContext'ı belirtmek için kullanılabilecek statik bir compositionLocal LocalTextClassifierCoroutineContext da kullanıma sunuldu. (I1dbaa, b/139321320)

Sürüm 1.9.0-alpha03

20 Mayıs 2025

androidx.compose.foundation:foundation-*:1.9.0-alpha03 iptal edilir. 1.9.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • TextField öğesine oluşturmadan önce ek açıklamalar eklemenin bir yolunu sağlayan AnnotatedOutputTransformation eklendi. (Ibc6f0, b/389978748)
  • LazyLayoutMeasurePolicy'ı kullanıma sunma ve LazyLayoutMeasureScope'ı kararlı hale getirme (I8c5df, b/252853717)
  • BasicSecureTextField artık kendi içindeki BasicTextField öğesinin ScrollState'ini yükseltiyor. (I6e576)
  • Modifier.onFirstVisible ve Modifier.onVisibilityChanged değiştiricileri kullanıma sunuldu. Bu değiştiriciler, Modifier.onLayoutRectChanged üzerine inşa edilmiş üst düzey değiştiricilerdir. Bu değiştiriciler, özellikle gösterimleri kaydetme, videoları otomatik oynatma gibi birçok yaygın uygulama koşulunu karşılamak için tasarlanmıştır. Kaydırma performansından ödün verme riski olmadan kritik liste tabanlı senaryolarda kullanılabilmeleri için performans göz önünde bulundurularak geliştirilmiştir. Bu değiştirici API'lerine ek olarak, bu kullanım alanlarını desteklemek ve geliştiricilerin kullanım alanlarına tam olarak uyan benzer özel değiştiricileri kolayca oluşturmasını sağlamak için RelativeLayoutBounds ek API'ler de eklenmiştir. (I759b8)
  • Dokunma eğimi ve yön kilidi kontrolü olan bir detectDragGestures aşırı yüklemesi kullanıma sunuldu. (Iadb0d)
  • Durum oluşturma için Modifier.scrollable2D, Scrollable2DState ve tamamlayıcı API'leri kullanıma sunun. Ayrıca, yaygın kaydırma uzantısı işlevleri de kullanıma sunuldu. (Ic61c8, b/214410040)
  • Renk alanı kimlikleri bazı renk alanları için sıralı olmadığından, Compose 64 bit renk değerleri doğrudan Android ColorLongs ile karşılaştırılamaz. Android renk alanlarına dönüştürme ve bu alanlardan dönüştürme için iki yeni API eklendi: toColorLong() ve fromColorLong(). (I36899)

Hata Düzeltmeleri

  • Artık bir SelectionContainer içindeki birden fazla Text composable'dan kopyalanan metinlere, ayrı Text composable'lardan gelen metinler arasına satır ayırıcı \n eklenir. (I25332, b/285036739)

Sürüm 1.9.0-alpha02

7 Mayıs 2025

androidx.compose.foundation:foundation-*:1.9.0-alpha02 iptal edilir. 1.9.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • İşaretçi girişi değişikliklerinin DragGestureNode içindeki VelocityTracker öğesine eklenme şekli düzeltildi. Bu işlem, yeni isOffsetPositionBeforeAddingToVelocityTrackerEnabled işaretiyle kontrol edilebilir. (Ic7992, b/292556787, b/236451818)
  • await[Vertical/Horizontal]PointerSlopOrCancellation herkese açık hale getirin (I6968b, b/298903681)
  • AbstractComposeView.consumeWindowInsets artık varsayılan olarak false değerine ayarlanıyor. WindowInsets, yanlış olarak ayarlandığında çocuğun boyutuna ve konumuna göre otomatik olarak ayarlanır. Bu nedenle, artık varsayılan olarak doğru değerine ayarlamanıza gerek yoktur. Bu değişiklik, alt görünümlerin varsayılan olarak WindowInsets güncellemelerini almamasına neden olan sorunu düzeltir. Geliştiriciler, deneysel ComposeFoundationLayout.isWindowInsetsDefaultPassThroughEnabled değerini true olarak değiştirerek veya tercihen tüm Compose görünümü örneklerinde AbstractComposeView.consumeWindowInsets değerini true olarak ayarlayarak güncellemeyi devre dışı bırakabilir. (I6fa0a, b/411868840)

Harici Katkı (External Contribution)

  • beyondViewportPageCount değerleri çok büyük olduğunda Pager'ın kilitlenmesi sorunu düzeltildi (Idb2db)

Sürüm 1.9.0-alpha01

23 Nisan 2025

androidx.compose.foundation:foundation-*:1.9.0-alpha01 iptal edilir. 1.9.0-alpha01 sürümü bu commit'leri içerir.

Davranış Değişiklikleri

  • Compose ile birlikte gelen hata analizi kontrolleri artık minimum 8.8.2 AGP sürümü gerektiriyor. AGP'yi yükseltemiyorsanız gradle.properties dosyanızda android.experimental.lint.version=8.8.2 (veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.

  • Kapsamlı değişiklik: Bir Indication parametresi içermeyen clickable, combinedClickable, selectable, toggleable ve triStateToggleable aşırı yüklemeleri artık yalnızca LocalIndication kullanılarak sağlanan IndicationNodeFactory örneklerini destekliyor. Bu değişiklik, Compose'un bu sürümünü kullanarak bu değiştiricilerin kullanımlarını yeniden derlediğinizde uygulanır. İkili / geçişli bağımlılıklar etkilenmez. LocalIndication için kullanımdan kaldırılmış bir Indication uygulaması sağlıyor ve bu API'leri kullanıyorsanız bu durum, çalışma zamanında kilitlenmeye neden olur. Bu davranış değişikliği, performansın iyileştirilmesi ve bu değiştiricileri kullanan Composable işlevlerinin yeniden oluşturma sırasında atlanabilmesi için gereklidir. Bu davranış değişikliğinin kapsamı dışında geçici olarak kalmak için ComposeFoundationFlags.isNonComposedClickableEnabled=false seçeneğini kullanabilirsiniz. Böylece, bu taşıma işleminde engellenmeden Compose'u yükseltebilirsiniz. Bu işaret, kararlı bir sürüm yayınlandıktan sonra kaldırılacak. Bu sorunu çözmek için kullanımdan kaldırılan tüm Indication uygulamalarını IndicationNodeFactory kullanacak şekilde taşıyın. Aşırı yüklemeleri açık bir Indication parametresiyle de kullanabilirsiniz. Bu aşırı yüklemeler, performans nedenleriyle önerilmese de Indication'ın IndicationNodeFactory olmayan örneklerini desteklemeye devam eder. (I6bcdc, b/316914333)

API Değişiklikleri

  • AnnotatedString aracılığıyla özel madde işaretli listeler oluşturmak için API'yi kullanıma sunma (I1d066, b/383269496, b/139326648)
  • Oluşturma özelliğinin ViewTreeObserver.OnScrollChanged tetiklemesine izin verin. Bu davranış, isOnScrollChangedCallbackEnabled işaretiyle kullanıma sunulur. Ayrıca DelegatableNode dispatchOnScrollChanged'nın bir uzantı işlevini de kullanıma sunduk. (I34b9d, b/238109286)
  • Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5)
  • TextFieldState için lint kontrolü desteği eklendi. Böylece, bu karakterin kompozisyon içinde hatırlanması sağlanır. Bunun yerine rememberTextFieldState kullanabilirsiniz. (I53d74)
  • FocusRequester öğesinin kompozisyon içinde hatırlanmasını sağlamak için lint kontrolü desteği eklendi (I6bf91).
  • BringIntoViewRequester için lint kontrolü desteği eklendi. Böylece, bu karakterin kompozisyon içinde hatırlanması sağlanır. (Ibfba6)
  • schedulePrefetch çağrıları için kapsamlar kullanıma sunuldu. Bu kapsamlar, boyut ve dizin bilgisi sağlama LazyListPrefetchState özellikleriyle uyumlu olacak şekilde ızgara ve liste stratejilerinde kullanılıyor. (Iad80c)
  • Kapsamlı değişiklik: Bir Indication parametresi içermeyen clickable, combinedClickable, selectable, toggleable ve triStateToggleable aşırı yüklemeleri artık yalnızca LocalIndication kullanılarak sağlanan IndicationNodeFactory örneklerini destekliyor. Bu değişiklik, Compose'un bu sürümünü kullanarak bu değiştiricilerin kullanımlarını yeniden derlediğinizde uygulanır. İkili / geçişli bağımlılıklar etkilenmez. LocalIndication için kullanımdan kaldırılmış bir Indication uygulaması sağlıyor ve bu API'leri kullanıyorsanız bu durum, çalışma zamanında kilitlenmeye neden olur. Bu davranış değişikliği, performansın iyileştirilmesi ve bu değiştiricileri kullanan Composable işlevlerinin yeniden oluşturma sırasında atlanabilmesi için gereklidir. Bu davranış değişikliğinin kapsamı dışında geçici olarak kalmak için ComposeFoundationFlags.isNonComposedClickableEnabled=false seçeneğini kullanabilirsiniz. Böylece, bu taşıma işleminde engellenmeden Compose'u yükseltebilirsiniz. Bu işaret, kararlı bir sürüm yayınlandıktan sonra kaldırılacak. Bu sorunu çözmek için kullanımdan kaldırılan tüm Indication uygulamalarını IndicationNodeFactory kullanacak şekilde taşıyın. Aşırı yüklemeleri açık bir Indication parametresiyle de kullanabilirsiniz. Bu aşırı yüklemeler, performans nedenleriyle önerilmese de Indication'ın IndicationNodeFactory olmayan örneklerini desteklemeye devam eder. (I6bcdc, b/316914333)
  • Otomatik iç içe önceden getirme davranışını kontrol etmek için bir işaretleme ekleyin: isAutomaticNestedPrefetchEnabled (I8d448)
  • LazyGridState ve rememberLazyGridState için LazyLayoutCacheWindow alan bir aşırı yükleme kullanın. (I51151)
  • Pencere iç kısımları için cetveller ekler. Başka bir cetvelden cetvel hesaplanmasına olanak tanımak için DerivedRuler ekler. Yoğunluğu uygulamak için PlacmentScope değiştirilir. (I658bc, b/359260964)
  • Boş WindowInsets oluşturmayı kolaylaştırmak için sıfır bağımsız değişkenli WindowInsets() fabrika işlevi eklendi. (I65f62, b/395311689)
  • Boş PaddingValues için PaddingValues.Zero eklendi. (If193e, b/386255688)

Hata Düzeltmeleri

  • state BasicTextField aşırı yüklemesi, boyutu değiştiğinde imlecin görünür şekilde kaydırılmasını sağlar. (I0eb41, b/406187741)
  • Başlangıç durumu hakkında bilgi vermek için LazyListPrefetchStrategy ve LazyGridPrefetchStrategy'deki onVisibleItemsUpdated API'leri güncellendi. (If2cfa)

Sürüm 1.8

Sürüm 1.8.3

18 Haziran 2025

androidx.compose.foundation:foundation-*:1.8.3 iptal edilir. 1.8.3 sürümü bu commit'leri içerir.

Sürüm 1.8.2

20 Mayıs 2025

androidx.compose.foundation:foundation-*:1.8.2 iptal edilir. 1.8.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Odaklanarak arama için yüklenecek öğe sayısının hesaplanmasının sıfıra bölmeye neden olmasını önleyen bir düzeltme uygulandı. Kontrolü, LazyLayoutBeyondBoundsState kullanan tüm düzenlere uyguladı. (8e6dc8)

Sürüm 1.8.1

7 Mayıs 2025

androidx.compose.foundation:foundation-*:1.8.1 iptal edilir. 1.8.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • BasicText ve TextAutoSize'de, TextOverflow.Ellipsize kullanıldığında metnin optimum boyuttan daha küçük olmasına neden olan hata düzeltildi. (I1e1d8, b/396582066)
  • BasicTextField'da, TextFieldDecorator, innerTextField'ı çağırmayı atladığında çeşitli kilitlenmelere neden olan hata düzeltildi. (I2638c), b/308398612
  • TextFieldState örneği değiştirildiğinde metin araç çubuğunun ve seçim tutamaçlarının tamamen kaybolmasına neden olan TextField hata düzeltildi. (I8068a), b/390477786
  • BasicText'da, minimum genişlik kısıtlamasının değiştirilmesinin, textAlign varsayılan olmayan bir değere ayarlandığında metnin yerleşimini güncellememesine neden olan hata düzeltildi. (I77a96), b/406305552

Sürüm 1.8.0

23 Nisan 2025

androidx.compose.foundation:foundation-*:1.8.0 iptal edilir. 1.8.0 sürümü bu commit'leri içerir.

Sürüm 1.8.0-rc03

9 Nisan 2025

androidx.compose.foundation:foundation-*:1.8.0-rc03 iptal edilir. 1.8.0-rc03 sürümü bu commit'leri içerir.

Sürüm 1.8.0-rc02

26 Mart 2025

androidx.compose.foundation:foundation-*:1.8.0-rc02 iptal edilir. 1.8.0-rc02 sürümü bu commit'leri içerir.

Sürüm 1.8.0-rc01

12 Mart 2025

androidx.compose.foundation:foundation-*:1.8.0-rc01 iptal edilir. 1.8.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.8.0-beta03

26 Şubat 2025

androidx.compose.foundation:foundation-*:1.8.0-beta03 iptal edilir. 1.8.0-beta03 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Çıkış dönüşümü uygulanmadan önce bir metin alanının değerini yakalayan yeni bir semantik özellik InputText eklendi. (Iae46a, b/395911609, b/176949051)
  • Desteği sonlandırılmış AutoSize aşırı yüklemeleri kaldırıldı. Lütfen aynı işlevi sunan TextAutoSize API'lerini kullanın. (I2c90f)
  • Aynı kısıtlamalara sahip ikinci bir düzen geçişinin, en büyük yerine ikinci en büyük uygun yazı tipi boyutunun kullanılmasına neden olabileceği TextAutoSize ile ilgili bir önbelleğe alma sorunu düzeltildi. (Id367f)

Sürüm 1.8.0-beta02

12 Şubat 2025

androidx.compose.foundation:foundation-*:1.8.0-beta02 iptal edilir. 1.8.0-beta02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LayoutModifierNode kullanılarak yapılan aşırı kaydırma uygulamalarının kaydırma kapsayıcılarında doğru şekilde çalışmamasına neden olan sorun düzeltildi.

Sürüm 1.8.0-beta01

29 Ocak 2025

androidx.compose.foundation:foundation-*:1.8.0-beta01 iptal edilir. 1.8.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SemanticsNodeInteraction.semanticsId() kaldırıldı. Bunun yerine SemanticsNodeInteraction.fetchSemanticsNode().id politikasını kullanın. (Ie397a)
  • Otomatik doldurma yöneticisinin dışında bulunacak şekilde requestAutofill API'yi yeniden yazın. (Id1929)
  • ContextualFlowRow ve ContextualFlowColumn, kullanımdan kaldırıldı olarak işaretlendi. Bu deneysel bileşen 1.7 sürümünde kullanıma sunulmuştu ancak henüz kararlı hale getirilmemişti ve uygulamanın istenmeyen bir durum olduğu düşünülüyordu. Gelecekte, bu bileşenin çözmesi amaçlanan kullanım alanlarını çözen bir bileşen sağlanabilir.
    • FlowRow ve FlowColumn, 1.7 sürümünde kullanıma sunulan ve overflow parametresini içeren deneysel aşırı yüklemelere sahiptir. Bu parametrenin kullanımı sonlandırıldı. Bunun yerine bu parametre olmadan aşırı yüklemeler kullanılabilir. Bu aşırı yüklemeler için varsayılan "taşma" davranışı, kullanıma sunulduğundan beri olduğu gibi "Kırp" olacaktır.
    • ContextualFlowRow için birçok kullanım alanı FlowRow kullanılarak gerçekleştirilebilir ancak bunun her durumda geçerli olmadığını kabul ediyoruz. ContextualFlowRow, kullanıcı alanında tamamen uygulanabilir ve istenirse uygulaması kopyalanıp uyarlanabilir. Gelecekte bu kullanım alanlarını farklı bir şekilde çözmeyi umuyoruz. (Ibafec)

Hata Düzeltmeleri

  • Üç nokta içeren metin düzeninin, animasyonlar sırasında bazen yanlış çevrilmesi sorunu düzeltildi. Daha fazla bilgi için b/389707025 adresini inceleyin (Ie55b1, b/389707025).
  • BasicText içinde TextAutoSize ve maxLines değerleri 1 olarak ayarlandığında oluşan hata düzeltildi. (Ic0450, b/376834366)
  • Metnin minimum doğal yüksekliği artık minLines parametresini dikkate alıyor. Bu, bildirilen minimum yerleşik özellikler yüksekliği değerinin, minLines parametresini karşılamak için gereken yükseklikten (I225f9, b/388299762) daha küçük olmayacağı anlamına gelir.

Sürüm 1.8.0-alpha08

15 Ocak 2025

androidx.compose.foundation:foundation-*:1.8.0-alpha08 iptal edilir. 1.8.0-alpha08 sürümü bu commit'leri içerir.

API Değişiklikleri

  • AutoSize: AutoSize, TextAutoSize olarak yeniden adlandırıldı ve özel TextAutoSize uygulamaları oluşturmayı sağlayan API'ler yayınlandı. Özel metin otomatik boyutlandırma uygulaması örneği için TextAutoSizeSample bölümüne bakın. (I85756)
  • DetectTapGesturesEnableNewDispatchingBehavior özellik bayrağını ComposeFoundationFlags konumuna taşıyıp isDetectTapGesturesImmediateCoroutineDispatchEnabled olarak yeniden adlandırdı. Eski işaret artık kullanılmıyor ve bunun yerine ComposeFoundationFlags.isDetectTapGesturesImmediateCoroutineDispatchEnabled'a temsilci olarak atanacak. (I62932)

Hata Düzeltmeleri

  • Varsayılan olarak DetectTapGesturesEnableNewDispatchingBehavior etkindir. TapGestureDetector API'ler artık varsayılan olarak yeni gönderme davranışını (anında gönderme) kullanıyor. (I9f2bc, b/369648479)
  • requiredWidth/Height/Size değiştiricileri, doğal boyutları düzgün şekilde işleyecek şekilde düzeltildi. (Ie3d7d, b/368113212)

Harici Katkı (External Contribution)

  • Temelde BasicTooltip, Material 3'te ise BasicTooltip/Tooltip ortaklaştırıldı. (Ifc2e6)
  • Yeni bir pano arayüzü ve bunun için bir kompozisyon yereli eklendi. (I80809)

Sürüm 1.8.0-alpha07

11 Aralık 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha07 iptal edilir. 1.8.0-alpha07 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabled işareti silindi. Bu işaret, dahili graphicsLayer öğesinin BasicText'den kaldırılmasını geri almaya yardımcı oluyordu. Bu işareti kullanıyorsanız lütfen hata bildirerek nedenlerini bize bildirin. Ayrıca, Modifier.graphicsLayer() aramalarınızda BasicText değerini ileterek de aynı davranışı elde edebilirsiniz. (Id9f90)
  • Yeni stickyHeader DSL için varsayılan uygulama eklendi. (I68986)
  • LocalAutofillHighlightColor kompozisyonunun yerel kullanımında renk türü kullanılıyor. (I0e05b)
  • OverscrollEffect#withoutDrawing, OverscrollEffect#withoutVisualEffect olarak yeniden adlandırıldı. (I1a154)

Hata Düzeltmeleri

  • Belirli kaydırmalarda yanlış sabitleme noktasına yerleşebilen AnchoredDraggable hedef hesaplamasındaki bir sorun için takip düzeltmesi. (I23b87, b/367660226)

Harici Katkı (External Contribution)

  • Görünüme Getir işlevini uygulamak için yeni bir yol sunan ve platform düzeyinde uygulamaya olanak tanıyan BringIntoViewResponderModifierNode simgesini kullanıcı arayüzüne ekleyin (Ia6dd8).
  • İmlecin çizilme şeklini biraz değiştiriyoruz. Testlerde imleç çizimini devre dışı bırakmak için LocalCursorBlinkEnabled simgesini kullanabilirsiniz. (I4c697)

Sürüm 1.8.0-alpha06

13 Kasım 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha06 iptal edilir. 1.8.0-alpha06 sürümü bu commit'leri içerir.

API Değişiklikleri

  • stylusHoverIcon değiştiricisini ekler. (Iff20a, b/331289114)
  • AnchoredDraggableState confirmValueChange desteği sonlandırıldı. İzin verilmeyen bağlantılar, durum değişikliklerini veto etmek yerine etkin bağlantı kümesinde olmamalıdır ve istenen işlemin kullanılamadığını belirtmek için OverscrollEffect kullanılmalıdır. (Ia717f)
  • Otomatik doldurma yöneticisini arayüz olarak değiştirir. (I84914, b/376080755)
  • OverscrollEffect#withoutDrawing ve OverscrollEffect#withoutEventHandling API'lerini ekler. Bu API'ler, sırasıyla etkinlikleri çizip işlemeyen, sağlanan kaydırma sonu efektinin sarmalanmış bir örneğini oluşturur. Bu sayede, kaydırma sonu, etkinlikleri gönderen bileşenden ayrı bir bileşende oluşturulabilir. Örneğin, tembel bir listede kaydırma sonunun çizilmesini devre dışı bırakıp kaydırma sonunu ayrı olarak üstte veya başka bir yerde çizin. (Idbb3d, b/266550551, b/204650733, b/255554340, b/229537244)
  • Metin araç çubuğuna otomatik doldurma desteği eklendi. (Ie6a4c)
  • OverscrollConfiguration ve LocalOverscrollConfiguration desteği sonlandırılır ve varsayılan kaydırma sonu uygulamasının bir örneğini oluşturmak veya parametrelerini özelleştirmek için rememberPlatformOverscrollFactory eklenir. Aşırı kaydırmayı devre dışı bırakmak için LocalOverscrollConfiguration provides null yerine LocalOverscrollFactory provides null kullanın. Işıma rengini / dolgusunu değiştirmek için LocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding) yerine LocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding) kullanın. (Ie71f9, b/255554340, b/234451516)
  • OverscrollEffect üzerindeki effectModifier özelliği, diğer API'lerle tutarlı olacak şekilde node: DelegatableNode olarak değiştirildi. (Ic0b46, b/255554340)
  • Deneysel GlobalAssertions API'si kaldırıldı. Bu özellik, erişilebilirlik kontrolleri yapmak için tasarlanmıştır. Bunun yerine enableAccessibilityChecks() özelliğini kullanın. (I59322)

Sürüm 1.8.0-alpha05

30 Ekim 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha05 iptal edilir. 1.8.0-alpha05 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Metnin otomatik olarak boyutlandırılması desteği. En sevdiğiniz metin composable'ına (ör. BasicText) bir AutoSize örneği (ör. AutoSize.StepBased) iletin ve metin boyutunuzun mevcut alana uyum sağladığını görün. (Ice7e0, b/139320827)
  • Hiyerarşi içinde kaydırma sonunu yapılandırmaya olanak tanıyan OverscrollFactory ve LocalOverscrollFactory API'leri eklendi. LocalOverscrollFactory aracılığıyla sağlanan değer, varsayılan olarak OverscrollEffect oluşturmak için kullanılır. Mevcut fabrikadan bir efekt oluşturup hatırlamak için rememberOverscrollEffect() kullanın. (I51ca4, b/255554340)

API Değişiklikleri

  • Otomatik doldurma özelliğinin başarılı doldurma vurgusunun tonunu değiştirmek için kullanılabilecek CompositionLocal simgesini kullanıma sunduk. (I32092)
  • ScrollableDefaults.overscrollEffect kaldırıldı. Bunun yerine rememberOverscrollEffect kullanmanız gerekir. Bu işlem, LocalOverscrollFactory ile sağlanan mevcut aşırı kaydırma uygulamasının bir örneğini oluşturur. (I1651a, b/255554340),(b/234451516)
  • Kullanıcıların otomatik doldurma yolculuğuna ince ayar yapmak için kullanılabilecek yeni bir AutofillManager arayüzü ve otomatik doldurmanın bu yeni sürümünü etkinleştirmek için bir isSemanticAutofillEnabled işareti sunar. (I9d484)
  • CombinedClickableNode öğesini kaldırır. Bu deneysel API, performans çalışmalarının engellenmemesi için geçici olarak kullanıma sunulmuştu ancak artık gerekli değil. Bunun yerine, diğer değiştirici API'lerde olduğu gibi doğrudan Modifier.combinedClickable kullanmalısınız. (I4b658)
  • horizontalScroll, verticalScroll, LazyColumn, LazyRow, LazyHorizontalGrid, LazyVerticalGrid, LazyHorizontalStaggeredGrid, LazyVerticalStaggeredGrid, HorizontalPager ve VerticalPager için özel OverscrollEffect belirtme desteğiyle aşırı yüklemeler ekler. Sağlanan OverscrollEffect, etkinlikleri alır ve bu bileşenlerin sınırları içinde oluşturulur. Aynı OverscrollEffect öğesini iki kez çizmenin desteklenmediğini unutmayın. Bu nedenle, bu bileşenlerden birine sağlanan aynı OverscrollEffect öğesini Modifier.overscroll ile ayrı olarak çizemezsiniz. Bu bileşenlerin sınırları dışında aşırı kaydırma çizme kullanım alanı gelecekte ayrı olarak ele alınacaktır. (I2dc42, b/266550551, b/234274772, b/224572538, b/353805117)

Sürüm 1.8.0-alpha04

16 Ekim 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha04 iptal edilir. 1.8.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • DelegatableNode#onDensityChange ve DelegatableNode#onLayoutDirectionChange geri çağırmaları eklenerek bunlar değiştiğinde düğüm durumunun güncellenmesine olanak tanındı. (I04f3e, b/340662451)
  • Paragraf ve ParagraphIntrinsics artık AnnotatedString'ye uygulanan tüm ek açıklamaların listesini alıyor. Daha önce yalnızca SpanStyles listesi vardı. (I12f80)
  • Tek bir işaretçi giriş değiştiricinin dokunma sınırlarını büyütmek için kullanılabilecek PointerInputModifierNode#touchBoundsExpansion işareti eklendi. (Iccf02, b/335339283)

Hata Düzeltmeleri

  • AnchoredDraggableDefaults.flingBehavior işlevine iletilen konumsal eşiklerin bazı senaryolarda doğru şekilde değerlendirilmemesine neden olan hata düzeltildi. (Ifdf0d, b/367660226)
  • Devam eden bir hızlı kaydırma sırasında düğüm ağacından kaldırılan iç içe kaydırılabilir öğeler için düzeltme sunuldu. Artık bu düğümler, hızlı kaydırmayı iptal edecek ve kalan hızla onPostFling etkinliğini doğru şekilde gönderecek. Ayrıca, gerileme durumunda davranışı kontrol etmek için NewNestedScrollFlingDispatchingEnabled işaretini de kullanıma sunuyoruz. Beta sürümünden önce işaret kaldırılacak. (I05c37, b/371168883)
  • Modifier.anchoredDraggable'ye aktarılan OverscrollEffects'nın 1D yerine 2D delta almasına neden olan hata düzeltildi. (Ie52c0)

Sürüm 1.8.0-alpha03

2 Ekim 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha03 iptal edilir. 1.8.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Kotlin sürümü 1.9'a güncellendi (I1a14c)
  • DraggableAddDownEventFixEnabled işareti kullanıma sunuldu (I848d5)
  • Erişilebilirlik hizmetleri için sayfa gezginlerindeki liste davranışını taklit etmek amacıyla Bant adlı yeni bir Anlamsal Yapı Rolü kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
  • graphicsLayer değiştiricisi, BasicText composable'dan kaldırıldı. Eski davranışa geri dönmek için deneysel ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabled işareti eklendi. (Ie478d)
  • Hiyerarşideki çocukların, ebeveynleri consumeWindowInsets() olmadan hizalasa bile insetsPadding kullanabilmesi için Modifier.recalculateWindowInsets() eklendi. (I7f9e4)

Hata Düzeltmeleri

  • detectDragGestures, sürüklenebilir ve kaydırılabilir öğelerde hareketle alma özelliğini uygulayın. Artık sürüklenen bir alt öğe bir hareketten vazgeçerse üst öğe onu alabilir. Bu sayede daha kesintisiz ve entegre bir hareket işleme sağlanır. (Ic88fe)
  • Kaydırılabilir öğelerde hızlıca kaydırma iptali davranışını güncelleyin. Artık kaydırılabilir bir öğe, hızlı kaydırma hareketiyle sınırlara ulaştığında hızlı kaydırma hareketini devam ettirmek yerine kaydırma hızını zincirdeki bir sonraki kaydırılabilir öğeye doğru şekilde aktaracak. (I9326a)

Sürüm 1.8.0-alpha02

18 Eylül 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha02 iptal edilir. 1.8.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Artık TextOverflow.StartEllipsis ve TextOverflow.MiddleEllipsis kullanılabilir. Bu sayede, tek satırlık metin satırının başına veya ortasına üç nokta yerleştirilebilir (I38913, b/185418980).

Sürüm 1.8.0-alpha01

4 Eylül 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha01 iptal edilir. 1.8.0-alpha01 sürümü bu commit'leri içerir.

Sürüm 1.7

Sürüm 1.7.8

12 Şubat 2025

androidx.compose.foundation:foundation-*:1.7.8 iptal edilir. 1.7.8 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Yapıştırılan metnin bir kısmı değiştirilirken BasicTextField içinde giriş dönüştürme ile ilgili kilitlenme sorunu düzeltildi. (I73702)

Sürüm 1.7.7

29 Ocak 2025

androidx.compose.foundation:foundation-*:1.7.7 iptal edilir. 1.7.7 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Bağlantı ek açıklamasıyla ilgili IndexOutOfBound kilitlenmesi düzeltildi. (Ic96d2)
  • Bağlantı içeren bazı uç durumlarda sonsuz yeniden oluşturma sorunu düzeltildi. (I04a03)

Bilinen Hatalar

  • Android API düzeyi 35'te nadir durumlarda metnin beklenmedik şekilde kaymasına neden olabilen bir hata tespit edildi. Bu sorun 1.7 sürümünde düzeltilemediği için 1.8 sürümünde düzeltilecektir. (b/391378120)

Sürüm 1.7.6

11 Aralık 2024

androidx.compose.foundation:foundation-*:1.7.6 iptal edilir. 1.7.6 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Satır içi sabit metin içeriklerinin erişilebilirlik hizmetleri tarafından görünmemesi sorunu düzeltildi.
  • AndroidEmbeddedExternalSurface öğesinin düzgün şekilde sıfırlanmamasına ve tembel listede yeniden kullanıldığında takılmasına neden olan sorun düzeltildi.

Sürüm 1.7.5

30 Ekim 2024

androidx.compose.foundation:foundation-*:1.7.5 iptal edilir. 1.7.5 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Sabitlenmiş öğelerin, içerik dolgu alanında iki kez alt bileşen olarak oluşturulmadığından emin olun. (Ic6224)

Sürüm 1.7.4

16 Ekim 2024

androidx.compose.foundation:foundation-*:1.7.4 iptal edilir. 1.7.4 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Metin alanlarında nadiren kilitlenmeye neden olan hata düzeltildi. (I475c6, b/313010266)
  • Lazy layout öğelerinin kökündeki ReusableContentHost kaldırıldı. Bu, "devre dışı bırakılmış bir düğümde çağrılan ölçü" kilitlenmelerinin olası bir temel nedeniydi. (Id6e60)

Sürüm 1.7.3

2 Ekim 2024

androidx.compose.foundation:foundation-*:1.7.3 iptal edilir. 1.7.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • minLines, varsayılan olmayan bir değere ayarlandığında BasicText ile ilgili bellek sızıntısı düzeltildi.

Sürüm 1.7.2

18 Eylül 2024

androidx.compose.foundation:foundation-*:1.7.2 iptal edilir. 1.7.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Sürüklenemeyen öğelerde, aşağı etkinliklerinin eksik olması nedeniyle fırlatma işlemlerinin normalden daha yavaş görünmesine neden olan sorun düzeltildi.

Sürüm 1.7.1

10 Eylül 2024

  • Android yapıları değiştirilmez. -desktop yapı kaldırıldı, -jvmStubs ve -linuxx64Stubs yapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar.

Sürüm 1.7.0

4 Eylül 2024

androidx.compose.foundation:foundation-*:1.7.0 iptal edilir. 1.7.0 sürümü bu commit'leri içerir.

1.6.0 sürümünden beri yapılan önemli değişiklikler

  • Modifier.clickable, Modifier.focusable, Modifier.indication, Modifier.scrollable ve Modifier.draggable hizmetlerinin performansı önemli ölçüde iyileştirildi. Bu çalışmalar kapsamında, dahili değişikliklere ek olarak aşağıdaki API değişiklikleri yapıldı:
    • Yeni bir Indication API'si (IndicationNodeFactory) eklendi. Bu, önceki (artık kullanımdan kaldırılmış) rememberUpdatedInstance API'ye kıyasla daha iyi performans gösteren Indication uygulamalarına yol açar. Taşıma bilgileri için developer.android.com adresini ziyaret edin.
    • clickable / combinedClickable / selectable / toggleable artık boş değer atanabilir bir MutableInteractionSource parametresini kabul ediyor. Boşsa ve sağlanan gösterge bir IndicationNodeFactory ise gösterge yalnızca gerektiğinde geç oluşturulabilir. Bu da performansı artırır. MutableInteractionSource değerini yükseltip kullanmıyorsanız remember { MutableInteractionSource() } değerini iletmek yerine null değerini iletmeniz önerilir.
    • Indication#rememberUpdatedInstance desteği sonlandırıldı. Yüksek ve kaçınılmaz bir performans cezası vardır ve diğer optimizasyonları engeller. Bunun yerine yeni IndicationNodeFactory API'yi kullanmanız gerekir.
  • BasicTextField TextFieldState kullanımı artık kararlı ve tüm çağrı merkezlerinin BasicTextField(value, onValueChange)'den BasicTextField(TextFieldState)'e geçişe başlamasını öneririz.
  • ClickableText desteği sonlandırıldı. Metninize tıklanabilir bağlantılar eklemek için AnnotatedString dosyanızdaki yeni LinkAnnotation ek açıklamasıyla birlikte BasicText simgesini kullanın. LinkAnnotation, bağlantı durumuna (ör. odaklanılmış, imleçle üzerine gelinmiş) göre özel stil oluşturulmasına olanak tanır.
  • ContextualFlowRow ve Enhanced FlowRow/Column ile MaxLines ve Overflow'ü kullanıma sunuyoruz. FlowRow ve FlowColumn deneysel özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artık maxLines ve taşma desteği sunuyor. Ayrıca ContextualFlowRow ve ContextualFlowColumn özelliklerini de kullanıma sunuyoruz. Bu güncelleme, performansı en iyi hale getiren bileşenler sağlamak için tasarlanmıştır. ContextualFlow*, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmeleri kullanan çok sayıda öğe için mükemmeldir. FlowRow ve FlowColumn ise 100'den az öğe içeren az sayıda öğe için mükemmeldir. Önemli: Tüm öğelerin, çapraz eksen maksimum değerine uyup uymadıklarına bakılmaksızın oluşturulduğu FlowRow veya FlowColumn'daki mevcut davranışı korumak için başlatma sırasında taşmayı FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin nasıl kullanıldığına dair örnekler için ContextualFlowRowSample ve FlowRowSample sayfalarını inceleyin. (Ib9135, b/293577082)
  • Öğelerin görünme ve kaybolma animasyonu desteği LazyColumn ve LazyRow'ye eklendi. Daha önce, yerleştirme (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık ve Modifier.animateItem() adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünüm [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (I2d7f7, b/150812265)
  • Resmi Android API'si (ScrollCaptureCallback) kullanılarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı.
  • NestedScroll kaynakları, animasyonları (Side Effect) ve fare tekerleği ile klavyeyi (UserInput) içeren genişletilmiş tanımları desteklemek için UserInput ve SideEffect ile değiştiriliyor.
  • LazyLayout önceden getirme istekleri artık acil olarak işaretlenebilir. Bu, öğenin bir sonraki karede gerekli olacağını düşündüğümüz ve önceden daha fazla iş yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f).
  • Android U'dan sonraki sürümlerdeki cihazlarda ekran kalemiyle el yazısı özelliğini destekleme. (I002e4)
  • Çeşitli API'ler kararlı sürüme yükseltildi.
    • Çağrı cihazları, tutturma, pencere içleri

Sürüm 1.7.0-rc01

21 Ağustos 2024

androidx.compose.foundation:foundation-*:1.7.0-rc01 iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Odaklanılabilir (veya tıklanabilir) ve devre dışı bırakılmış bir üst öğenin içinde herhangi bir öğe odaklandığında kilitlenmeye neden olan gerileme düzeltildi. (b/317561689)

Sürüm 1.7.0-beta07

7 Ağustos 2024

androidx.compose.foundation:foundation-*:1.7.0-beta07 iptal edilir. 1.7.0-beta07 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Metin girişiyle ilgili SemanticsNodeInteraction, performTextReplacement, performTextInput ve performTextClearance işlevleri artık salt okunur TextFields üzerinde çağrıldığında onaylama hataları verecek. (I4ae8f)
  • Köprülerdeki görsel hata düzeltildi. (I23311)
  • contentReceiver değiştiricisinin bazı IME'lerle çalışmaması sorunu düzeltildi.
  • Hız oluşturma: Compose UI ve Foundation'da NaN değerlerinin yayılmasını önleyin.

Sürüm 1.7.0-beta06

24 Temmuz 2024

androidx.compose.foundation:foundation-*:1.7.0-beta06 iptal edilir. 1.7.0-beta06 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta05

10 Temmuz 2024

androidx.compose.foundation:foundation-*:1.7.0-beta05 iptal edilir. 1.7.0-beta05 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • SnapFlingBehavior ve Pager'da NaN değerlerinin işlenmesiyle ilgili düzeltme.

Sürüm 1.7.0-beta04

26 Haziran 2024

androidx.compose.foundation:foundation-*:1.7.0-beta04 iptal edilir. 1.7.0-beta04 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Çok büyük metin satırları (ör. 10.000 karakter) ölçülürken kilitlenmelerin önüne geçildi (8157ab).
  • Yeni BasicTextField'da kilitlenmeye neden olan çok büyük metinlerin ölçümü düzeltildi (6b7575).
  • Satır/sütun ölçümünde, belirli senaryolarda metin kullanımını bozan davranış değişikliğini geri alır (69e8ba).

Sürüm 1.7.0-beta03

12 Haziran 2024

androidx.compose.foundation:foundation-*:1.7.0-beta03 iptal edilir. 1.7.0-beta03 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta02

29 Mayıs 2024

androidx.compose.foundation:foundation-*:1.7.0-beta02 iptal edilir. 1.7.0-beta02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • LazyGrids için önceden getirme davranışını yapılandırmak üzere deneysel bir API ekler. Bu API, LazyLists için mevcut deneysel API'ye benzer. Buna, iç içe yerleştirilmiş LazyGrids öğelerinin önceden getirilmesi için destek de dahildir. LazyListPrefetchStrategy'ya benzer şekilde, varsayılan uygulama her ızgaranın ilk 2 iç içe öğesini önceden getirmektir. Ancak bu, yeni LazyGridPrefetchStrategy(nestedPrefetchItemCount) ve LazyListPrefetchStrategy#onNestedPrefetch API'leri ile yapılandırılabilir. (I591c4)
  • SemanticsProperties.Editable, IsEditable olarak yeniden adlandırıldı ve SemanticsPropertyReceiver.editable, isEditable olarak değiştirildi. Özellik artık bir Boole değeridir ve her zaman metin alanlarıyla belirtilir. (I8acd8)
  • basicMarquee varsayılan değerleri MarqueeDefaults nesnesine taşındı. (I12ff6)
  • basicMarquee delayMillis parametresi, repeatDelayMillis olarak yeniden adlandırıldı. (I12ff6)
  • Bağlantıları stilize etmeye yönelik API güncellemesi: TextLinkStyles, TextStyle konumuna taşındı ve TextDefaults, materyalden kaldırıldı (I5477b).

Hata Düzeltmeleri

  • Amacını daha iyi yansıtması için LayoutCoordinates.introducesFrameOfReference, LayoutCoordinates.introducesMotionFrameOfReference olarak yeniden adlandırıldı. İlgili işlevi, koordinatları bu işarete göre hesaplayacak şekilde yeniden adlandırdı. (I3a330)
  • MarqueeDefaults özelliklerinden "Varsayılan" kaldırıldı. (I1d8a0)
  • "Marquee" özelliği MarqueeDefaults mülklerinden kaldırıldı. (Iad4f4)
  • TextLinkStyles kullanıcısı, TextStyle sınıfından kaldırıldı. Bunun yerine, TextLinkStyles, LinkAnntation oluşturucusunun ve AnnotatedString.fromHtml yönteminin (I90b2b) bir parçasıdır.
  • Pager'ın, sınıra doğru kaydırılırken sınıra yerleşmiş olmasına rağmen sınıra yapışmasına neden olan hata düzeltildi. (I9f373, b/339171222)
  • BTF2'de artık doğru fare seçimi hareketleri kullanılıyor. (Ibe8c6)

Harici Katkı (External Contribution)

  • "Doğruluğu artırmak için önceden getirme işleminde oluşturma/ölçme süresi hesaplama içerik türünü temel alın" (Iea622) adlı gönderimi yeniden gönderin.
  • Doğruluğu artırmak için önceden getirme işleminde oluşturma/ölçme süresi hesaplama içerik türünü kullanma (Ibccb1)
  • WindowInsetsPadding değiştiricileri ortak kaynak grubunda kullanılabilir hale getirme (I070b2)

Sürüm 1.7.0-beta01

14 Mayıs 2024

androidx.compose.foundation:foundation-*:1.7.0-beta01 iptal edilir. 1.7.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • İkili uyumluluk için desteği sonlandırılan gizli özellik olarak KeyboardOptions.shouldShowKeyboardOnFocus özelliği yeniden eklendi. (I15cfe)
  • Modifier.anchoredDraggable artık sağdan sola düzenlerde kullanıldığında yatay yönlendirmeye sahip bileşenler için sürükleme farklarını varsayılan olarak tersine çeviriyor. (I3c6d9)
  • AnnotatedString.hasEqualsAnnotations artık hasEqualAnnotations. (I685c0)
  • Metinde Material temalı bağlantıları alma API'si güncellendi. Özellikle, temalı LinkAnnotations oluşturmak ve temalı bağlantılarla HTML ayrıştırmak için TextDefaults yöntemleri kaldırıldı. Bunun yerine, bağlantıları Text composable'a parametre olarak stilize etmeye olanak tanıyan bir TextLinkStyles sınıfı eklendi. (I31b93)
  • onDragStarted ve onDragStopped, askıya alma dışı geri çağırmalarla değiştirildi. (I59de8)

Hata Düzeltmeleri

  • contentPadding, gelen kısıtlamalardan daha büyük olduğunda Pager'ın kilitlenmesine neden olan hata düzeltildi. Sayfalayıcı artık PageSize işlevinden döndürülen negatif değerleri 0'a zorluyor. (Iba5d8, b/314008560)

Sürüm 1.7.0-alpha08

1 Mayıs 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha08 iptal edilir. 1.7.0-alpha08 sürümü bu commit'leri içerir.

Yeni Özellikler

  • BasicTextField ve SelectionContainer'ye kesme, kopyalama, yapıştırma ve tümünü seçme işlemleri için öğeler içeren sağ tıklama içerik menüsü eklendi. (If8c93, Ia2b49, I6f268)

API Değişiklikleri

  • LazyLayout önceden getirme istekleri artık acil olarak işaretlenebilir. Bu, öğenin bir sonraki karede gerekli olacağını düşündüğümüz ve önceden daha fazla iş yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f).
  • isPositionedByParentWithDirectManipulation, introducesFrameOfReference olarak yeniden adlandırıldı. Bu ayarın artık ters etki gösterdiğini unutmayın. Yani varsayılan olarak çoğu LayoutCoordinates, bir referans çerçevesi sunar ve yalnızca doğrudan manipülasyon altında yerleştirildiğinde özellik yanlış olur. Yalnızca referans çerçevesi sunanlarla konum sorgulamak için positionInLocalFrameOfReference(...) kullanın. Veya LookaheadScope positionInLocalLookaheadFrameOfReference. (Ifc5f7)
  • LinkInteractionListener içinde onClicked, onClick olarak yeniden adlandırıldı (Iaa35c)
  • API konseyinin geri bildirimine göre getScrollViewportLength için işlem lambda'sını değiştirin. (Ibc74a)
  • Ekran kalemiyle el yazısı yetkilendirme API'lerinin adı değiştirildi. (Ica45f, b/327271923)
  • TextInclusionStrategy.isInside filtresini isIncluded olarak yeniden adlandırın. Paragraph/MultiParagraph#getRangeForRect() dönüş türünü null yapılamaz hale getirin. (I51f26)

Hata Düzeltmeleri

  • SelectionContainer'daki tüm metin bağlam menülerine "Tümünü seç" seçeneği eklendi. (Ib750e, b/240143283)
  • reverseScrolling=true içeren kaydırma kapsayıcıları için uzun ekran görüntüsü alma sorunu düzeltildi. (I7c59c)
  • Eyalet sınırlarına yaklaşıldığında AnchoredDraggableState'nın currentValue değişmesine neden olan sorun düzeltildi. (Iea30b, b/333846848)

Harici Katkı (External Contribution)

  • Sorumluluklarını daha iyi yansıtması için PrefetchExecutor -> PrefetchScheduler olarak yeniden adlandırıldı. (Ib9154)
  • İç içe yerleştirilmiş LazyLists öğelerinin (ör. iç içe yerleştirilmiş LazyRows öğelerini oluşturmak için kullanılan LazyColumn) önceden getirilmesi için destek eklendi. Bu değişikliğin, bu LazyLists öğelerinde kaydırma sırasında kare düşmelerini azaltması bekleniyor. Varsayılan olarak, ilk 2 iç içe öğe önceden getirilir. Ancak bu davranış, yeni LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) ve LazyListPrefetchStrategy#onNestedPrefetch API'leri ile kontrol edilebilir. (I51952)

Sürüm 1.7.0-alpha07

17 Nisan 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha07 iptal edilir. 1.7.0-alpha07 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Bağlantılara MaterialTheme uygulayan bir LinkAnnotation oluşturma ve HTML etiketli dizeyi ayrıştırma yöntemlerini içeren bir TextDefaults nesnesi eklendi. (I98532, b/139312671)
  • Öğelerin görünme ve kaybolma animasyonu desteği LazyVerticalGrid ve LazyHorizontalGrid'ye eklendi. Daha önce, yerleştirme (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık ve Modifier.animateItem() adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünüm [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (Ib7d12, b/330510929)
  • Öğelerin görünme ve kaybolma animasyonu desteği LazyVerticalStaggeredGrid ve LazyHorizontalStaggeredGrid'ye eklendi. Daha önce, yerleştirme (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık ve Modifier.animateItem() adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünüm [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (I69bc9, b/330511290)

API Değişiklikleri

  • ContextMenuColors ve ilişkili LocalContextMenuTheme ProvidableCompositionLocal eklendi. Metin alanlarındaki ve seçilebilir metinlerdeki bağlam menüsünün renkleri, kompozisyon yerelini sağlayarak değiştirilebilir. (Ifa154)
  • Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelindiğinde ve odaklanıldığında uygulanan stil seçeneğine de sahip oldu. (I5f864, b/139312671)
  • El yazısı hareketleri için ViewConfiguration.HandwritingGestureLineMargin özelliğini kullanıma sunuyoruz. BasicTextField için el yazısı hareketini destekler. (Ie6e13, b/325660505)
  • İlgili API yüzeyinin geri kalanını dengelemeyi tamamlamaya zamanımız olmadığı için 1.7 sürümünde DelegatableNode.scrollIntoView kaldırıldı. Bu işlev, 1.8 sürümünde (I6cf61, b/333421581, b/332900232) yeniden kullanıma sunulacak.
  • Düzen koordinatlarını sorgularken artık excludeDirectManipulationOffset bağımsız değişkenini kullanarak, çocuklarını Placeable.PlacementScope.withDirectManipulationPlacement ile yerleştiren üst düzenler tarafından belirlenen ofseti hariç tutabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir düzen artık bunları withDirectManipulationPlacement kullanarak yerleştirebilir (ör. varsayılan olarak uygulanan kaydırma). Bu sayede, approachLayout tabanlı animasyonlar daha sezgisel hale gelir. Artık animasyon oluşturulacak ofseti ve yaklaşımına animasyon eklemeye karar verirken doğrudan uygulanacak öğeyi ayırt etme fırsatı sunulur. (I60ec7)
  • LazyStaggeredGrid için requestScrollToItem özelliğini kullanıma sunuyoruz. Artık istemci, her ölçüm geçişi için requestScrollToItem işlevini çağırarak anahtara dayalı dizini korumayı devre dışı bırakabilir. requestScrollToItem çağrılmadığı sürece bu durum, mevcut davranışı hiçbir şekilde değiştirmez. (I63983)
  • Pager'da requestScrollToPage ile tanışın. Artık istemci, her ölçüm geçişi için requestScrollToPage işlevini çağırarak anahtara dayalı dizini korumayı devre dışı bırakabilir. requestScrollToPage çağrılmadığı sürece bu durum, mevcut davranışı hiçbir şekilde değiştirmez. (Ic4213)
  • LazyGrids için requestScrollToItem özelliği kullanıma sunuldu. Artık istemci, her ölçüm geçişi için requestScrollToItem işlevini çağırarak anahtara dayalı dizini korumayı devre dışı bırakabilir. requestScrollToItem çağrılmadığı sürece bu durum, mevcut davranışı hiçbir şekilde değiştirmez. (I0a7a0)
  • ClickableText desteği sonlandırıldı olarak işaretlenir. Metne bağlantı eklemek için bağlantınıza karşılık gelen bir LinkAnnotation ile AnnotatedString oluşturun ve bu AnnotatedString öğesini Text composable'ına iletin (I34d4b, b/323346994).
  • UrlAnnotation desteği sonlandırıldı. Bunun yerine LinkAnnotation.Url kullanın. Material temalandırma kullanıyorsanız Material temalandırmanın uygulandığı ek açıklamayı oluşturmak için TextDefaults nesnesini kullanın (I8d180, b/323346545).
  • String.parseAsHtml, AnnotatedString.Companion.fromHtml olarak yeniden adlandırıldı (I43dcd)
  • parseAsHtml yöntemine stil oluşturma bağımsız değişkenleri (linkStyle, focusedLinkStyle, hoveredLinkStyle) ve bir bağlantı etkileşimi dinleyicisi eklendi. HTML etiketli dizeyi <a> etiketleriyle ayrıştırırken yöntem, bu tür her etiket için bir LinkAnnotation.Url oluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her bir ek açıklamaya iletir. (I7c977)
  • LinkAnnotation artık duruma dayalı stil oluşturma bağımsız değişkenlerini ve bir LinkInteractionListener alır. Köprü almak için bu ek açıklamayı AnnotatedString öğesine ekleyin. focusedState ve/veya hoveredState parametrelerini ileterek bağlantılar odaklandığında ve/veya üzerine gelindiğinde bağlantıların görsel yapılandırmasını tanımlayabilirsiniz. (I81ce4, b/139312671)
  • Uzun ekran görüntüleri için özellik bayrağı kaldırıldı. (I28648, b/329128246)
  • LazyColumn artık uzun ekran görüntülerinde sabit başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)
  • Yeni BasicTextField ile kullanıma sunulan deneysel API'lerin çoğunu kararlı hale getirdik. (I714e2)
  • İçeriklerin karartılması sırasında hangi karakterin kullanılacağını kontrol eden textObfuscationCharacter parametresi BasicSecureTextField işlevine eklendi. (I0588b)
  • NestedScroll kaynakları, animasyonları (Side Effect) ve fare tekerleği ile klavyeyi (UserInput) de içerecek şekilde genişletilen bu kaynakların tanımına uyum sağlamak için UserInput ve SideEffect ile değiştiriliyor. (I40579)
  • Kaydırılabilir değiştirici katmanında uygulanan, platforma bağlı bir odak kaydırma davranışı olan LocalBringIntoViewSpec'ı kullanıma sunuyoruz. (I27aa5, b/317453911)
  • TextFieldCharSequence kaldırıldı. TextFieldBuffer.originalValues, TextFieldBuffer.originalText ve TextFieldBuffer.originalSelection ile değiştirilir. (I2c7d6)
  • ImeOptions.hintLocales artık boş değer içerebilir değil. Boş bir yerel ayar listesi iletmek istiyorsanız lütfen LocaleList.Empty kullanın. (Ic5bc4)
  • getOffsetFractionForPage, getOffsetDistanceInPages olarak yeniden adlandırıldı. (Ia05e2)

Hata Düzeltmeleri

  • InputTransformations, next ile birleştirildiğinde KeyboardOptions, yeni KeyboardOptions.merge yöntemi kullanılarak artık tek tek seçeneklerle düzgün şekilde birleştiriliyor. (Ie5304, b/295951492)
  • AnchoredDraggableState'nın targetValue artık konum eşiklerini dikkate almıyor. Artık %50'lik örtülü bir eşiğe sahip. Bu da targetValue öğesinin iki tutturma noktası arasındaki orta noktada değiştiği anlamına geliyor. (I82c2c)

Harici Katkı (External Contribution)

  • 2 kaydırma API'sinin adı değiştirildi (I56a75).

Sürüm 1.7.0-alpha06

3 Nisan 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha06 iptal edilir. 1.7.0-alpha06 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Öğelerin görünme ve kaybolma animasyonu desteği LazyColumn ve LazyRow'ye eklendi. Daha önce, yerleştirme (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık ve Modifier.animateItem() adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünüm [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (I2d7f7, b/150812265)
  • LazyColumn/LazyRow müşterileri artık askıya alma işlemi içermeyen bir LazyListState.requestToScroll çağırarak yaklaşan ölçüm geçişi için anahtara dayalı bir dizin tutmayı devre dışı bırakabilir. (I98036, b/209652366)
  • Stil verilmiş dizeler için parseAsHtml yöntemi eklendi: Bu yöntem, HTML etiketleriyle işaretlenmiş bir dizeyi AnnotatedString biçimine dönüştürmeye olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde işaretli listeleri görüntüleyemezsiniz. (I84d3d)
  • Resmi Android API'si kullanılarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı (ScrollCaptureCallback). Bu özellik deneyseldir ve şu anda tüm durumları doğru şekilde ele almayabilir. Bu nedenle, bu özellik şu anda varsayılan olarak devre dışıdır. Bu özelliği etkinleştirmek için ComposeFeatureFlag_LongScreenshotsEnabled bayrağını true olarak ayarlayın. Bu işaret, 1.7 beta sürümünden önce kaldırılacak. (I2b055, b/329296471)
  • GraphicsLayer değiştirici örneklerini belirtmek için Composable uygulamalarıyla koordinasyon yapmaya gerek kalmadan GraphicsLayer örneklerinin yerleştirilmesi ve oluşturulmasında daha fazla esneklik sağlamak ve yerleşik oluşturma özelliklerini desteklemek için yeni bir GraphicsLayer API'si kullanıma sunuldu.

API Değişiklikleri

  • Tüm KeyboardOptions parametreleri artık varsayılan olarak belirtilmemiş bir değere sahip. KeyboardOptions.merge yöntemi eklendi.
  • KeyboardOptions.autoCorrect, autoCorrectEnabled olarak yeniden adlandırıldı ve boş değer atanabilir hale getirildi. Boş değer, herhangi bir değerin belirtilmediğini gösterir. (Ia8ba0, b/295951492)
  • outOfBoundsPageCount, beyondViewportPageCount olarak yeniden adlandırıldı. (I129c6)
  • fun ClipEntry.getMetadata(), val ClipEntry.clipMetadata olarak değiştirildi. (I50155)
  • TextFieldState.valueAsFlow() kaldırıldı. snapshotFlow { state.text } veya snapshotFlow { TextFieldCharSequence(state.text, state.selection) } kullanmayı tercih edin (I7d629)
  • InputTransformation.transformInput parametreleri yeniden düzenlendi. originalValue: TextFieldCharSequence kaldırıldı. Bunun yerine TextFieldBuffer artık aynı ada sahip bu değeri taşıyor. valueWithChanges: TextFieldBuffer parametresi de kaldırıldı. TextFieldBuffer artık işlevdeki alıcı kapsamıdır. (I919cc)
  • BasicTextField(state) varyantı ve BasicSecureTextField, artık yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için KeyboardActions yerine KeyboardActionHandler kullanıyor. (I58dda)
  • "Sahte" metin giriş alanlarında ekran kalemiyle el yazısını desteklemek için ekran kalemiyle el yazısı yetkilendirme API'leri. (I9c09c, b/327271923)
  • KeyboardOptions.shouldShowKeyboardOnFocus, showKeyboardOnFocus olarak yeniden adlandırıldı. (Ib4b7a, b/295951492)
  • hintMediaTypes parametresi, Modifier.contentReceiver öğesinden kaldırıldı. Geliştiriciler, yapılandırılan hintMediaTypes ile uyumsuz olabileceğinden alınan TransferableContent'nın medya türünü kontrol etmeye zaten teşvik ediliyordu. (I82f99)
  • BasicSecureTextField parametreleri yeniden sıralandı. keyboardType ve imeAction parametreleri kaldırıldı ve BasicSecureTextField için uygun olan aynı varsayılan değerler korunarak tam KeyboardOptions sınıfı kullanıldı. scrollState parametresi de kaldırıldı. (Ibbfa9)
  • TextFieldState.text türü TextFieldCharSequence'dan yalnızca CharSequence olarak değiştirildi. Bu nedenle, mevcut seçim ve kompozisyon değerlerini doğrudan durum nesnesinden okumak için TextFieldState.selection: TextRange ve TextFieldState.composition: TextRange? eklendi.
  • TextFieldState.forEachTextValue kaldırıldı. (Idb2a2)
  • ClipboardManager.getClipMetadata ve ClipboardManager.hasClip işlevleri kaldırıldı. Lütfen mevcut klip girişinin meta verilerini okumak için clipEntry.getMetadata() kullanın. Ayrıca, panoda geçerli bir klip olup olmadığını anlamak için ClipboardManager.getClip sonucunun boş olup olmadığını da kontrol edin. (I50498)
  • ClipboardManager.setClip artık panoyu temizlemek için boş değer kabul ediyor. (I7d2e9)
  • ReceiveContentListener, işlev arayüzüne dönüştürülür. Ayrıca, ReceiveContentListener artık bir işlev arayüzü olduğundan lambda alan Modifier.receiveContent aşırı yüklemesi de kaldırıldı.
  • Modifier.receiveContent, Modifier.contentReceiver olarak yeniden adlandırıldı. (I1e6af)
  • TransferableContent.consumeEach, TransferableContent.consume olarak yeniden adlandırıldı. (I1e462)
  • rememberTextFieldState, kararlı API'ye yükseltildi. (I37999)

Hata Düzeltmeleri

  • BasicTextField(state) varyantının CJK(bileşime dayalı) klavyelerle çalışmamasına neden olan hata düzeltildi. (I54425)
  • Modifier.dragAndDropTarget()'nın, Modifier.Node yeniden kullanıldığında belirli senaryolarda eski verilere başvurmasına neden olan hata düzeltildi. (I05bb1)
  • AnchoredDraggableState#anchoredDrag görüşmelerinin anchoredDrag işleminin sonunda otomatik olarak sonlandırıldığı son sözleşme değişikliği geri alındı. (I95715)

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha05 iptal edilir. 1.7.0-alpha05 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Köprüleri stilize etmek için deneysel LocalTextLinkStyle kompozisyon yereli kaldırıldı. (Iebfa7)
  • BasicText bağımsız değişkeninin onLinkClicked bağımsız değişkeniyle deneysel olarak geçersiz kılınması kaldırıldı. Köprü desteği için gelecekte bir yedek API sunulacaktır. (I107d5)
  • TextFieldState ve TextFieldBuffer altındaki kod noktalarıyla ilgili yöntemler ve özellikler kaldırıldı. Ayrıca, kalan seçim ve kompozisyonla ilgili API'lerden inChars sonekleri de kaldırıldı. (Ief7ce)
  • AnchoredDraggable'nın currentValue özelliği artık bir sabitleme noktasından geçerken güncellenecek. Yalnızca bir sabitleme noktasında yerleşirken güncelleyerek önceki currentValue semantiğini almak için settledValue kullanın. İlerleme durumu artık özellik yerine işlev olarak (başlangıç ve varış noktası gerektirir) gösteriliyor. (Ibe6e8, b/318707189, b/298271489, b/294991954)
  • BasicTextField(state), TextFieldState, InputTransformation, OutputTransformation, TextFieldLineLimits, TextFieldDecorator kararlı sürüme yükseltildi. (I9582b)
  • Düşük seviyeli IME ile ilgili testler ve diğer düşük seviyeli IME kullanım alanları yazmaya yardımcı olması için InterceptPlatformTextInput tanıtıldı. PlatformTextInputTestOverride desteği sonlandırıldı. (I862ed, b/322680547)
  • restrictedConstraints(), fitPrioritizingWidth() ve fitPrioritizingHeight() olmak üzere iki yönteme bölündü (I6d7fd)

Harici Katkı (External Contribution)

  • En son kaydırma işlemi için kaydırma yönünü kontrol etmek üzere 2 yeni API isLastScrollForward/isLastScrollBackward eklendi. Henüz kaydırma işlemi yapılmadıysa false değerini döndürür. (I63a0e)

Sürüm 1.7.0-alpha04

6 Mart 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha04 iptal edilir. 1.7.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Android U sürümünden sonraki cihazlarda ekran kalemiyle el yazısı özelliğini destekleme. (I002e4)
  • hintLocales, KeyboardOptions'ye olarak eklendi. Böylece TextFields, belirli yerel ayarlara sahip IME'lere ipucu vererek önceden tercih edilen bir dil ayarlayabilir. (Id18c2)
  • value: String ve onValueChange: () -> String parametrelerini alan deneysel BasicTextField2 ve BasicSecureTextField aşırı yüklemeleri kaldırıldı. (I568b4)
  • Uygulandığı BasicTextField2 öğesinin anlamsal yapısını etkilemek için InputTransformation öğesine isteğe bağlı bir applySemantics işlevi ekleyin. (I74a2f, b/170648072)
  • Bu CL'de, Compose'da kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için GetScrollViewportLength semantik işlemini ekliyoruz. Bu CL, söz konusu özelliğin Foundation Scrollable Lists'te kullanımını da uygular. (Ic5fa2)
  • BasicTextField2, BasicTextField olarak yeniden adlandırıldı. (Ie5713)
  • FocusRequester.createRefs artık kararlı (I4d92c, b/261436820)
  • Değiştirici düğümlerin doğrudan scrollIntoView isteği göndermesine olanak tanımak için DelegatableNode.scrollIntoView() tanıtıldı. (I2b3b7, b/299939840)
  • Değiştirici düğümlerin, kompozisyon yereli okunmadan mevcut Android View sürümünü almasına olanak tanıyan DelegatableNode.requireView() işlevi kullanıma sunuldu. (I40768)
  • Bağlamsal Akış Satırı Kapsamı ve Bağlamsal Akış Sütunu Kapsamı içinde bağlamsal düzen bilgilerini kullanıma sunuyoruz. Bu bilgiler arasında, belirtilen konumda kalmak için satır dizini, konum ve maksimum genişlik ve yükseklik kısıtlamaları yer alıyor. Maksimum genişliği/yüksekliği aşan öğeler, taşma ayarlarına bağlı olarak bir sonraki satıra geçebilir veya atlanabilir. (Id13f8, b/292114798)

Hata Düzeltmeleri

  • Belirli koşullarda TextField öğesinin enabled veya readOnly özelliklerinin açılıp kapatılmasının kilitlenmeye neden olduğu hata düzeltildi. (Iae17b)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha03 iptal edilir. 1.7.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • DelegatableNode.requireLayoutCoordinates(), Modifier.Node'nin mevcut LayoutCoordinates değerini almak için onPlaced değerini geçersiz kılmaya ve koordinatları bir mülkte kendiniz depolamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak kullanıma sunuldu. (Ia8657)
  • DelegatableNode.currentLayoutCoordinates, Modifier.Node'nin mevcut LayoutCoordinates değerini almak için onPlaced değerini geçersiz kılmaya ve koordinatları bir mülkte kendiniz depolamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak kullanıma sunuldu. (Iaebaa)
  • DraggableAnchors tarafından kullanılan AnchoredDraggable performans optimizasyonları. (I89cff)
  • BasicTextField2 ve androidx.compose.foundation.text2 paketi altındaki ilgili API'ler androidx.compose.foundation.text paketine taşınıyor. (I9f635)
  • BasicTextField2 artık CodepointTransformation parametresini kabul etmiyor. BasicSecureTextField veya OutputTransformation kullanın. (Id34ff)
  • Yalnızca iki AnnotatedStrings öğesinin ek açıklamalarını karşılaştırma yöntemi eklendi. (I32659)
  • ContextualFlowRow ve MaxLines ile Overflow içeren gelişmiş FlowRow/Column ile tanışın. FlowRow ve FlowColumn deneysel özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artık maxLines ve taşma desteği sunuyor. Ayrıca ContextualFlowRow ve ContextualFlowColumn özelliklerini de kullanıma sunuyoruz. Bu güncelleme, performansı en iyi hale getiren bileşenler sunmak için tasarlanmıştır. ContextualFlow*, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmeleri kullanan çok sayıda öğe için idealdir. FlowRow ve FlowColumn ise 100'den az öğe içeren az sayıda öğe için idealdir. Önemli: Tüm öğelerin çapraz eksen maksimumuna uyup uymadıklarına bakılmaksızın oluşturulduğu FlowRow veya FlowColumn'daki mevcut davranışı korumak için başlatma sırasında overflow değerini FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin nasıl kullanıldığına dair örnekler için ContextualFlowRowSample ve FlowRowSample sayfalarını inceleyin. (Ib9135, b/293577082)

Hata Düzeltmeleri

  • İmleç animasyonu artık açık ve kapalı durumlar arasında kare istemiyor. (Ia2253)
  • KeyboardOptions artık tüm özellikleri doğru şekilde kopyalayacak. (If12de)

Sürüm 1.7.0-alpha02

7 Şubat 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha02 iptal edilir. 1.7.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • HorizontalPager, VerticalPager ve PagerState, kararlı sürüme yükseltildi. (I67660, b/316966909)
  • Uygulama genelinde metinlerdeki bağlantıların stilini değiştirmeye olanak tanıyan LocalTextLinkStyle kompozisyon yereli eklendi. Uygulamada kendi temanızı kullanıyorsanız bu kompozisyon yerelini temalandırmanıza göre ayarlamanız gerekir. Material teması kullanılırken bağlantının rengi varsayılan olarak Material'ın birincil rengine ayarlanır. (I7eb10)
  • Geliştiricilere Jetpack Compose'da zengin içerik alma yolu sağlayan receiveContent değiştiricisi kullanıma sunuldu.
  • receiveContent, yazılım klavyesi veya pano yapıştırma işlemiyle sağlanan zengin içeriği kabul etmek için BasicTextField2 ile entegre olur. (I81b72)
  • Bu değişiklikle, diğer kullanım alanlarını etkinleştirmek ve daha fazla esneklik sağlamak için sayfalayıcıda SnapFlingBehavior yerine TargetedFlingBehavior kullanıyoruz. (I762ea)
  • Bu değişiklikle birlikte Snapping API'leri kararlı hale getiriyoruz. Ayrıca, test kodunun bir kısmını temizliyor ve Snapping'e daha fazla örnek ekliyoruz. (Id8da9)
  • Devam eden animasyonun durumu ve hedef kaydırma uzaklığı hakkında bilgilerin yayılmasına olanak tanıyan FlingBehavior TargetedFlingBehavior özelliğini kullanıma sunuyoruz. (I6a207)

Hata Düzeltmeleri

  • BasicTextField2, artık imleci görünürlükten çıkmış veya giriş nedeniyle görünürlükten çıkacak olsa bile yazarken görünür tutuyor. (Ieb856, b/237190748)

Harici Katkı (External Contribution)

  • LazyList'lerin önceden getirme davranışını yapılandırmak için deneysel bir API ekler. (I022a4)

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha01 iptal edilir. 1.7.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Yeni bir Indication API, IndicationNodeFactory eklendi. Bu, önceki (artık desteği sonlandırılmış) rememberUpdatedInstance API'ye kıyasla daha yüksek performanslı Indication uygulamalarına yol açar. Taşıma bilgileri için developer.android.com adresini ziyaret edin.
  • clickable / combinedClickable / selectable / toggleable artık boş değer atanabilir bir MutableInteractionSource parametresini kabul ediyor. Boşsa ve sağlanan Indication bir IndicationNodeFactory ise Indication yalnızca gerektiğinde geç oluşturulabilir. Bu da performansı artırır. MutableInteractionSource öğesini yükseltip kullanmıyorsanız null iletmeniz önerilir.

API Değişiklikleri

  • AnchoredDraggable içinde DecayAnimation tanıtıldı. Bu değişiklik, AnchoredDraggable'ye decayAnimationSpec parametresini ekleyerek bir sabitleme noktasına yerleşirken dağılma animasyonunun kullanılmasına olanak tanır. Bu değişiklik, her spesifikasyonun kullanım alanını anlamanıza yardımcı olmak için mevcut animationSpec öğesinin snapAnimationSpec olarak yeniden adlandırılmasını da içerir.
  • BasicTextField2 deneysel kullanım için kullanılabilir. BasicTextField ile yaklaşık olarak aynı özelliklere sahip olmalı ve davranış, üretime hazır olmalıdır. Ancak API şu anda deneme aşamasındadır. Stabilize edilmeden önce BasicTextField olarak yeniden adlandırılır ve aynı pakete taşınır.
  • OutputTransformation için BasicTextField2 API'sinin ilk taslağı kullanıma sunuldu. Bu API, eski BasicTextField'deki VisualTransformation kullanım alanlarının çoğunun yerini alır. Ancak henüz tamamlanmadı ve bazı şeyler doğru çalışmayacak. Yine de kullanım alanlarınız için API kullanılabilirliğiyle ilgili geri bildirimlerinizi bekliyoruz. (aosp/2708848)
  • Metne bağlantı ve tıklanabilir öğeler eklemeye olanak tanıyan LinkAnnotation özelliği kullanıma sunuldu. Bağlantılar özelliği henüz tamamlanmamıştır ve daha fazla API değişikliği yapılacaktır.
  • Geliştiricilere Jetpack Compose'da zengin içerik alma yolu sağlayan receiveContent değiştiricisi kullanıma sunuldu.
  • receiveContent, yazılım klavyesiyle veya panodan yapıştırılarak sağlanan zengin içeriği kabul etmek için BasicTextField2 ile entegre olur.
  • KeyboardOptions.shouldShowKeyboardOnFocus, odaklanıldığında yazılım klavyesi isteme BasicTextField varsayılan davranışını devre dışı bırakmanıza olanak tanır.
  • TextInputService ve LocalTextInputService desteği sonlandırıldı. Bunun yerine doğrudan platform IME API'leriyle entegrasyon için PlatformTextInputModifierNode kullanın. (aosp/2862698)
  • Indication#rememberUpdatedInstance desteği sonlandırıldı. Yüksek ve kaçınılmaz bir performans cezası vardır ve diğer optimizasyonları engeller. Bunun yerine yeni IndicationNodeFactory API'yi kullanmanız gerekir.

Hata Düzeltmeleri

  • BasicTextField artık VisualTransformation iletilirken küçük bir ofset eşleme seçimi için önceden doğrulama yapacak. Bu sayede, daha sonraki ölçme veya çizme işlemlerinde kurtarılamayan istisnalara yol açan yaygın kodlama hataları yakalanabilir. Oluşturma sırasında hata fırlatıldığında, geliştiricilerin bu hataları geliştirme sırasında görme olasılığı daha yüksek olur. Bu da üretim kilitlenmelerini önlemeye yardımcı olur. (I0fd42)
  • Geçersiz bir dizin için geçersiz bir dizin döndürürseniz VisualTransformation hata vermez (b/316401857 ).

Sürüm 1.6

Sürüm 1.6.8

12 Haziran 2024

androidx.compose.foundation:foundation-*:1.6.8 iptal edilir. 1.6.8 sürümü bu commit'leri içerir.

Sürüm 1.6.7

1 Mayıs 2024

androidx.compose.foundation:foundation-*:1.6.7 iptal edilir. 1.6.7 sürümü bu commit'leri içerir.

Sürüm 1.6.6

17 Nisan 2024

androidx.compose.foundation:foundation-*:1.6.6 iptal edilir. 1.6.6 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Belirli koşullarda TextField öğesinin enabled veya readOnly özelliklerinin açılıp kapatılmasının kilitlenmeye neden olduğu hata düzeltildi. (Iae17b)

Sürüm 1.6.5

3 Nisan 2024

androidx.compose.foundation:foundation-*:1.6.5 iptal edilir. 1.6.5 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Satır/sütundaki yeniden üretilmesi zor hatalara hata ayıklama günlükleri ekler: (b/300280216 ve b/297974033)

Sürüm 1.6.4

20 Mart 2024

androidx.compose.foundation:foundation-*:1.6.4 iptal edilir. 1.6.4 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Sürüklemenin ilk karesinde metnin düzen sınırlarının dışına çıkan, uzun basıp sürükleyerek seçim yapma hareketi artık kilitlenmeye neden olmuyor. (Icdf90, b/325307463)

Sürüm 1.6.3

6 Mart 2024

androidx.compose.foundation:foundation-*:1.6.3 iptal edilir. 1.6.3 sürümü bu commit'leri içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.foundation:foundation-*:1.6.2 iptal edilir. 1.6.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • AnimateContentSize'nın düzgün şekilde sıfırlanmaması sorununu düzeltin. (I07051)
  • Bazı durumlarda metnin intrinsicHeight bölümünün aşırı önbelleğe alınmasıyla ilgili sorun düzeltildi. (3cd398, b/217910352)

Sürüm 1.6.1

7 Şubat 2024

androidx.compose.foundation:foundation-*:1.6.1 iptal edilir. 1.6.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Sınırın üzerinde kaydırıldığında kademeli ızgara ölçüsünü düzeltme (bffc39)
  • Büyük boyutlu düzenler için kontrol ekleyin. (e74af5)
  • Düzensiz ızgaranın başlangıcındaki 0 boyutlu öğelerin yerleştirilmesi düzeltildi. (785f94)
  • onRelease geri çağırmasını onForgotten ile aynı sırada çağırın. (31ce3b)

Sürüm 1.6.0

24 Ocak 2024

androidx.compose.foundation:foundation-*:1.6.0 iptal edilir. 1.6.0 sürümü şu commit'leri içerir.

1.5.0 sürümünden beri yapılan önemli değişiklikler

  • Önceden tanımlanmış bir dizi tutturma noktası arasında sürükleme ve animasyon oluşturma olanağı sunan yeni değiştirici Modifier.anchoredDraggable. Bu değiştirici, Modifier.swipeable yerine kullanılmak üzere tasarlanmıştır. Modifier.swipeable'dan nasıl geçeceğinizi ve bu aracı nasıl kullanacağınızı geçiş rehberinden öğrenebilirsiniz.
  • Uygulamalar ve bileşenler arasında sürükle ve bırak işlevi eklendi. Başlamak için DragAndDropTarget, Modifier.dragAndDropSource ve diğer API'lere bakın.
  • Modifier.draggable2D, kolay 2D sürükleme desteği sağlayan yeni değiştiricidir. Örnek bölümüne bakın.
  • Yüzey odaklı bileşenlerin oluşturma işlemine eklenmesini kolaylaştırmak için AndroidExternalSurface ve AndroidEmbeddedExternalSurface eklendi.
  • Pager ve snapFlingBehaviour'da çeşitli API değişiklikleri ve iyileştirmeleri
  • Çeşitli odak, metin ve iç kenar API'leri kararlı API'lere yükseltildi

Sürüm 1.6.0-rc01

10 Ocak 2024

androidx.compose.foundation:foundation-*:1.6.0-rc01 iptal edilir. 1.6.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • DragAndDropTarget() uzantısı oluşturucusu kaldırıldı. object: DragAndDropTarget {} kullanarak yeni bir örnek oluşturun. (I32318)

Sürüm 1.6.0-beta03

13 Aralık 2023

androidx.compose.foundation:foundation-*:1.6.0-beta03 iptal edilir. 1.6.0-beta03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Sonsuz kısıtlamalarla ölçülen çok büyük metinleri etkileyen kilitlenme düzeltildi. (I1a7df, b/312294386)
  • PlatformImeOptions artık arayüz yerine somut bir sınıf. (If40a4)

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.foundation:foundation-*:1.6.0-beta02 iptal edilir. 1.6.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Yalnızca yeniden düzenleme kaydırmasından sonra canScroll'nın güncellenmemesi sorunu düzeltildi. (I60a86)
  • Küçük kaydırmalardan sonra Modifier.animateItemPlacement() ve LookaheadScope için düzeltme. (I3a2b7)

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.foundation:foundation-*:1.6.0-beta01 iptal edilir. 1.6.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alma DragAndDropTarget öğesini açıkça alıyor ve sürükle bırak oturumunu etkinleştirmek için bir lambda'ya sahip. Artık DragAndDropModifierNode için iki fabrika işlevi var. Biri transfer almak, diğeri veri aktarmak için (I69481)
  • maximumFlingVelocity, Float olarak gösterilecek şekilde güncellendi. maximumFlingVelocity birliği hakkında daha net bilgi vermek için dokümanlar güncellendi. (I8adc7)
  • DragAndDropModifierNode fabrikasındaki onDragAndDropStart, acceptDragAndDropTransfer olarak yeniden adlandırıldı.

    Sürükle ve bırak oturumundan kabul etmek için acceptsDragAndDropTransfer, dragAndDropTarget Modifier'a eklendi. Bu lambda, sürükle ve bırakma oturumuyla ilgileniyorsanız uygun bir DragAndDropTarget döndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'lar bununla değiştirildi.

    Sürükle ve bırak oturumlarından veri almak için DragAndDropTarget fabrika işlevi eklendi (Iebf3a).

  • AnchoredDraggable içinde startDragImmediately öğesini göstermek, bu öğe kullanılırken sürükleme hareketlerinin algılanmasını kontrol etmenizi sağlar. Widget hedef bir bağlantıya animasyon uygularken bu özelliği ayarlamak faydalıdır. Örnek bölümüne bakın. (Ie6d13, b/285139987)

  • Foundation Tooltip API'leri artık @ExperimentalFoundationApi (I30b0b)

  • DragAndDropInfo türü kaldırıldı. DragAndDropModifierNode.drag artık transferData, dekorasyon boyutu ve sürükleme dekorasyonu DrawScope lambda'sı için parametreler alıyor.

    DragAndDropTarget, tek bir soyut yöntem olmak yerine belirli sürükle ve bırakma etkinlikleri için yöntemlere sahiptir.

    DragAndDropModifierNode için fabrika işlevindeki onDragAndDropEvent, DragAndDropTarget değerinin yalnızca belirli bir sürükle ve bırakma oturumu için geçerli olduğunu daha iyi belirtmek amacıyla onDragAndDropStart olarak yeniden adlandırıldı.

    DragAndDropEventType kaldırıldı (I645b1)

  • PlatformTextInputModifierNode.runTextInputSession, establishTextInputSession olarak yeniden adlandırıldı. (I03cd0)

  • OriginalText yerine TextSubstitution koyun. (Ifa5a8)

  • PlatformTextInputModifierNode.textInputSession, runTextInputSession olarak yeniden adlandırıldı. (Ie9c6b)

  • Gelecekte yeniden kullanılmak üzere saklanan SubcomposeLayout öğesinin alt öğeleri (ve buna dayalı LazyColumn gibi düzenler) devre dışı olarak kabul edilir. Bu tür düğümleri test etmek için yeni bir assertIsDeactivated() test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)

  • Modifier.magnifier işlevinin clippingEnabled parametresi clip olarak yeniden adlandırıldı.

  • magnifierCenter parametresi, aynı varsayılan davranışı koruyarak Modifier.magnifier için null değer atanabilir hale getirildi. (I6aa66)

  • Material SwipeToReveal API'leri (kartlar ve çip için) artık bu yuvaları oluşturmak üzere veri sınıfına dayalı örnekler yerine yuva tabanlı bir API'ye (Compose tarafından önerildiği gibi) dayanıyor. Bu, uyumluluğu bozan bir değişikliktir. Lütfen yeni API'nin nasıl kullanılacağına dair örnekler için demoya ve örnek koda bakın. (Ia8943)

Hata Düzeltmeleri

  • PageSize.Fixed için equals ve hashcode yöntemlerini uygulayın. (Ie3ede, b/300134276)
  • BasicText düzeninin, minWidth değiştiğinde ve minWidth ilk ölçü kısıtlamalarından maxWidth daha küçük olduğunda (Idb19c) küçülmemesine neden olan hata düzeltildi.
  • ArcLine'da Sweep Gradient için oluşturucu desteği eklendi. (I4d5bb)
  • Pencere iç kenarı değişikliğiyle ilgili ikili uyumluluk sorununu düzeltme (Iee695)
  • Mikro karşılaştırmalar, Material3 Chip/Button için materyal çekirdek katmanının kaldırıldığında daha iyi performans gösterdiğini ortaya koyduğundan bu katmanı kaldırın. (I55555)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha08 iptal edilir. 1.6.0-alpha08 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Modifier.draggable2D, kolay 2D sürükleme desteği sağlayan yeni değiştiricidir. Örnek'e (Id95f5, b/214412658) bakın.

API Değişiklikleri

  • Modifier.dragAndDrawSource işlevindeki onDrawDragShadow lambda'sının adı drawDragDecoration olarak, DragAndDropInfo işlevindeki boyut parametresinin adı ise dragDecorationSize olarak değiştirildi. (Id0e30, b/303904810)
  • BasicTextField2 işlevinin decorationBox parametresi, decorator olarak yeniden adlandırıldı. Ayrıca türü, eşdeğer bir eğlenceli arayüze TextFieldDecorator dönüştürülür. (I23c1c)

Hata Düzeltmeleri

  • BasicTextField ile ilgili onValueChange koşulları hakkında daha iyi dokümanlar. (I90fc9, b/160257648)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha07 iptal edilir. 1.6.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Özel metin düzenleyiciler için yazma testleri için PlatformTextInputMethodTestOverride özelliğini kullanıma sundu. (Id159b)
  • GraphicsSurface, AndroidExternalSurface olarak yeniden adlandırıldı (I11680)
  • Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için DisableNonLinearFontScalingInCompose geçici işareti eklendi. Temizlemek için zamana ihtiyacınız varsa testlerinizde DisableNonLinearFontScalingInCompose = true simgesini ayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacak. (Ic9486)
  • Tahsislerden kaçınan ColorList ve ColorSet koleksiyonları eklendi. (I744bd)
  • Bu değişiklik, shortSnapVelocityThreshold işlevini kaldırır. Bu işlev, SnapLayoutInfoProvider uygulamalarının bir uygulama ayrıntısı haline getirilmiştir. (I65f6d)
  • Sürükle ve bırak oturumlarını başlatmak için dragAndDropSource değiştiricisi ve sürükle ve bırak oturumlarından almak için dragAndDropTarget değiştiricisi eklendi (Ib7828, b/286038936).
  • SnapPositionInLayout belgelerini ve konum yöntemini güncelleyin. SnapPositionInLayout konum yöntemine içerik dolguları ekleyin. (Id7938, b/300116110)
  • Kullanıcının yaptığı değişiklikleri geri alma/yeniden yapma olanağı sağlayan UndoState, TextFieldState'ye eklendi. (Icc024)

Hata Düzeltmeleri

  • Hız değişikliğinden sonra sabit basicMarquee animasyonunun oynatılmaması sorunu düzeltildi. (Id2e77, b/297974036)

Sürüm 1.6.0-alpha06

20 Eylül 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha06 iptal edilir. 1.6.0-alpha06 sürümü şu commit'leri içerir.

Yeni Özellikler

  • SurfaceView, TextureView: GraphicsSurface() ve EmbeddedGraphicsSurface() için yeni Composable sarmalayıcılar. Bu API deneyseldir ve değişikliklere tabidir. (I9ddb2)
  • Modifier.magnifier() artık kararlı bir API. Buna, değiştiricideki satır içi parametreler lehine MagnifierStyle karakterinin kaldırılması da dahildir. (I83bec, b/298381260, b/262367109, b/261438887)

API Değişiklikleri

  • ScrollScope sürümünde kullanıma sunulan updateCurrentPage ve updateTargetPage, PagerState.scroll animasyonlu kaydırma özelliğinin özelleştirilmesine olanak tanımak için gereken son parçalardır. (I9cad5, b/267744105, b/243786897)
  • SnapFlingBehavior cihazından yoğunluğu kaldırın. SnapLayoutInfoProvider'nın tüm uygulamalarında yoğunluğa erişmenin bir yolu zaten vardır. Alıcı kapsamı kaldırılabilir. Bu da hem SnapFlingBehavior hem de SnapLayoutInfoProviders'nın daha az karmaşık bir şekilde uygulanmasına yol açar. (I153c3)
  • Daha fazla değiştirici kararlı olarak işaretlendi. (I56af1, b/298046462)
  • SnapStepSize, SnapLayoutInfoProvider listesinden kaldırıldı. Hesaplama, düzen bilgileri kullanılarak yapılmalı ve yaklaşım veya tutturma ofsetleri aracılığıyla sağlanmalıdır. (If320c)

Davranış Değişiklikleri

  • Compose, artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirme kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinlerin boyutu yalnızca biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yükseklikle orantılı kalacak şekilde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar'a (I11518) bakın.

Hata Düzeltmeleri

  • İpuçları için rememberSaveable kullanımını kaldırın. (Icc131, b/299500338)

Sürüm 1.6.0-alpha05

6 Eylül 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha05 iptal edilir. 1.6.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Mevcut BasicTextField API'sinde olduğu gibi, değişmez bir değer ve bu değeri değiştirmek için bir geri çağırma kabul eden BasicSecureTextField için aşırı yüklemeler ekleyin. (Ia4882)
  • API 33 ve sonraki sürümlerde kayan pencerelerden uzak durmayı tercih ettiğiniz için composable olarak işaretlemek üzere Modifier.preferKeepClear() ekleyin. (Ib51d5, b/297260115)
  • ScrollView ve RecyclerView gibi View bileşenlerindeki hızlı kaydırma hızları ViewConfiguration.ScaledMaximumFlingVelocity ile sınırlandırılır. Oluşturma özelliği artık maximumFlingVelocity'ın kendi sürümünü içeriyor ve bu sürüm Draggable için geçerli. (Ibf974)
  • Kullanımdan kaldırılan Pager ve PagerState aşırı yüklemeleri kaldırıldı. (Iea07e)
  • compose.foundation'ye BasicTooltipBox eklendi ve PlainTooltipBox ile RichTooltipBox, yeni PlainTooltip ve RichTooltip composable'ları ile TooltipBox kullanacak şekilde güncellendi. (I79e1d)

Sürüm 1.6.0-alpha04

23 Ağustos 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha04 iptal edilir. 1.6.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için ReusableComposition arayüzü eklendi. (I812d1, b/252846775)
  • Modifier.focusGroup, kararlı API'lere yükseltildi. (I7ffa3)
  • Mevcut BasicTextField API'sinde olduğu gibi, değişmez bir değer ve bu değeri değiştirmek için bir geri çağırma kabul eden BasicTextField2 için aşırı yüklemeler ekleyin. (I3f2b8)
  • GridItemSpan::currentLineSpan artık kararlı bir API. (Icc29c)
  • contentDescription kabul eden Canvas artık kararlı bir API. (Ib3d29)
  • ScrollState içinde viewportSize tanıtıldı. Bu, ölçüm yapıldıktan sonra ScrollState kullanan bileşenin viewPort boyutunu öğrenmenin bir yoludur. (I8b85a, b/283102682)
  • Pager'daki önceden getirme işleminin, Görünümler'deki davranışla eşleşmemesine neden olan sorun düzeltildi. (I93352, b/289088847)
  • Modifier.consumeWindowInsets(PaddingValues) artık kararlı sürümde.
    • Deprecated Modifier.consumedWindowInsets API'si kaldırıldı. Bunun yerine Modifier.consumeWindowInsets politikasını kullanın. (Id72bb)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha03 iptal edilir. 1.6.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • LazyLayout aşırı yüklemesi eklendi. Artık daha önce olduğu gibi düz bir nesne değil, LazyLayoutItemProvider lambda'sı kabul ediyor. Önceki aşırı yükleme kullanımdan kaldırıldı. (I42a5a)
  • privateImeOptions (Idb772) yapılandırma desteği eklendi.

Hata Düzeltmeleri

  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanma sırasında readOnly değeri true'dan false'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha02 iptal edilir. 1.6.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • PagerLayoutInfo, Pager'da bir ölçü geçişinden sonra toplanan bilgilerle birlikte kullanıma sunuldu. Ayrıca, Pager içindeki tek bir ölçülen sayfa hakkındaki bilgiler olan PageInfo de kullanıma sunuldu. (Iad003, b/283098900)
  • Composable'lara izin verilen girişleri belirtmek için ek açıklamalar (I51109)
  • Testlerde odaklanma isteğinde bulunmak için daha kolay ve bulunabilir bir yöntem olarak SemanticsNodeInteraction.requestFocus eklendi. (Ie8722)
  • PlatformTextInput* API tamamen yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController ve LocalSoftwareKeyboardController artık deneysel değil. LocalSoftwareKeyboardController artık uygun bir CompositionLocal. (I4c364)
  • Modifier.transformable artık izin vermek veya vermemek için kaydırma yönünü belirlemeye yardımcı olmak üzere canPan parametresinde kaydırma farkı sağlıyor. (I692aa, b/266829800)
  • consumeWindowInsets değiştiricisini, AbstractComposeView üst sınıfını genişletecek şekilde günceller (Iacd74, b/269479941)

Sürüm 1.6.0-alpha01

21 Haziran 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha01 iptal edilir. 1.6.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Foundation'da yeni bir AnchoredDraggable API'si kullanıma sunuldu. Ayrı durumlar arasında sürüklenebilen bileşenler (ör. modal alt sayfalar) oluşturmak için kullanılabilir. Bu API, Material'ın Swipeable API'sinin yerini almıştır. (I4a2ed)

API Değişiklikleri

  • InputConnection#requestCursorUpdates desteği (I0c69b)
  • Özel animasyon özelliklerine izin vermek için scrollAnimationSpec tanıtıldı. BringIntoViewCalculator ayarı BringIntoViewScroller olarak güncellendi. (Idb741)
  • Yüklenemeyen öğe yolunun açıklamasıyla birlikte, bit eşlem öğeleri yüklemeye çalışırken oluşturulan hata nesnelerini sarmak için ResourceResolutionException türünü ekleyin. (I19f44, b/230166331, b/278424788)
  • Metin çevirisini desteklemek için anlamsal yapı özellikleri ve işlemler eklendi. (I4a6bc)
  • Scrollable gibi bileşenlerin bringIntoView isteklerine nasıl yanıt vereceğini özelleştirmek için kullanılabilecek bir BringIntoViewCalculator API'si kullanıma sunuldu. Kaydırılabilir aşırı yüklemesi, isteğe bağlı olarak BringIntoViewCalculator örneğini kabul edecek şekilde değiştirildi. (Iaf5af)

Hata Düzeltmeleri

  • Değiştirilebilir durum / Animatable oluşturmayla ilgili lint kontrollerine benzer şekilde, MutableInteractionSource oluştururken bunu hatırlamadan oluşturursanız uyarı veren bir lint kontrolü eklendi. (I5daae)
  • Fareyle seçim desteği eklendi. Dokunmaya dayalı seçim, kelime bazında genişler ve karakter bazında daralır. (Ic0c6c, b/180639271)
  • Özel FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (I9790e)

Sürüm 1.5

Sürüm 1.5.4

18 Ekim 2023

androidx.compose.foundation:foundation-*:1.5.4 iptal edilir. 1.5.4 sürümü şu commit'leri içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.foundation:foundation-*:1.5.3 iptal edilir. Bu sürümde değişiklik yok.

Sürüm 1.5.2

27 Eylül 2023

androidx.compose.foundation:foundation-*:1.5.2 iptal edilir. 1.5.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Semantik geçersiz kılındığında belirli durumlarda kilitlenmelere yol açan metin hatası düzeltildi.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.foundation:foundation-*:1.5.1 iptal edilir. 1.5.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanma sırasında readOnly değeri true'dan false'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.foundation:foundation-*:1.5.0 iptal edilir. 1.5.0 sürümü şu commit'leri içerir.

1.4.0 sürümünden beri yapılan önemli değişiklikler

  • Modifier.clickable,Modifier.draggable, Modifier.scrollable, düzen değiştirici ve daha fazlası dahil olmak üzere birçok temel değiştirici Modifier.Node API'ye taşındı. Böylece ilk bileşimdeki ek yük azaltıldı.
  • Pagers kararlılığında iyileştirmeler. Birçok hata giderildi.
  • pageCount parametreleri artık sayfalayıcının kendisi yerine PagerState içinde yer alıyor

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.foundation:foundation-*:1.5.0-rc01 iptal edilir. 1.5.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • mutableStateOf() çağrılarını karşılık gelen özel türlere taşımayı önermek için isteğe bağlı bir inceleme yapılabilir. Lint kimliği AutoboxingStateCreation'dır. Daha önce bu inceleme, tüm projeler için varsayılan olarak etkinleştirilmişti. Bu uyarıyı Android Studio'nun düzenleyicisinde ve projenizin lint çıkışlarında görmek için modülünüzün build.gradle veya build.gradle.kts yapılandırmasında warning "AutoboxingStateCreation"'ı bildirerek önem derecesini bilgilendirme düzeyinden uyarı düzeyine (veya daha yüksek bir düzeye) değiştirin (I34f7e):

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.foundation:foundation-*:1.5.0-beta03 iptal edilir. 1.5.0-beta03 sürümü şu commit'leri içerir.

Sürüm 1.5.0-beta02

7 Haziran 2023

androidx.compose.foundation:foundation-*:1.5.0-beta02 iptal edilir. 1.5.0-beta02 sürümü şu commit'leri içerir.

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.foundation:foundation-*:1.5.0-beta01 iptal edilir. 1.5.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Nabız ve günlük adım sayısı sağlamak için PlatformDataProvider'ı uygulayın. SensorGateway arayüzü, genel API'den kaldırıldı. (I55b84)

Hata Düzeltmeleri

  • Tembel liste/ızgara vb. ölçümleri sırasında tahsisleri azaltma (Iaf9e2)
  • Anlık görüntüler uygulanırken daha az yer ayırma (I65c09)
  • Yay animasyonlarından tahsisler kaldırıldı (Ie9431)
  • TextLayout (I0fd11) alanından tahsis kaldırıldı
  • İşaretçi hızı izlemede birden fazla ayırma kaldırıldı (I26bae)

Sürüm 1.5.0-alpha04

10 Mayıs 2023

androidx.compose.foundation:foundation:1.5.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha04 yayınlandı. 1.5.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Tam parametre listesiyle optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • LazyGridState ile kullanılabilecek bir SnapLayoutInfoProvider tanıtın. (I92134, b/269237141, b/260914964)
  • Lazy staggered grids öğe kapsamı için deneysel Modifier.animateItemPlacement() eklendi. Otomasyon konumunu değiştirme/yeniden sıralama animasyonlarını elde etmek için öğelere uygulayabilirsiniz. (I4b62d, b/257034719)
  • GridCells.FixedSize sürümünü kararlı sürüme yükseltin. FixedSize, her hücrenin çapraz eksende tam boyutu aldığı, kalan alanın ise çapraz eksen düzenlemesiyle dağıtıldığı bir LazyGrid tanımlar. (I8542f)
  • Pager için alıcı kapsamı PagerScope ve belirli bir sayfa ofsetini hesaplamak için hizmet işlevi kullanıma sunuldu. (If2577)
  • Snap fling davranışı oluştururken snapPositionalThreshold özelliğini kullanıma sunma. Bu parametreyi, Pager'da kısa tutturma için bir konum eşiği belirtmek üzere kullanın. (If8f7f)
  • SnapLayoutInfoProvider.calculateSnappingOffsetBounds, calculateSnappingOffset ile değiştirildi. Bu yeni yöntemde, yalnızca tutturulacak bir sonraki kaydırma değerini istiyoruz. Sınırların hesaplanması, tutturmanın nasıl yapılması gerektiğine bağlı olarak değişebileceğinden uygulama düzeyinde yapılmalıdır. (I923a4)
  • LazyStaggeredGrid API'ler kararlı sürüme yükseltildi. (I633a5)
  • pageCount, Horizontal/VerticalPager hesabından kaldırılsın mı? Bu bilgi, durum oluşturulurken sağlanmalıdır. PagerState ve rememberPagerState, pageCount'ı kabul edecek şekilde güncellendi. (Ieb52d, b/266965072)
  • pageCount, Horizontal/VerticalPager hesabından kaldırılsın mı? Bu, durum oluşturulurken sağlanmalıdır. PagerState ve rememberPagerState, pageCount'ı kabul edecek şekilde güncellendi. (Ifa3cb, b/266965072)
  • Pager'ın SnapFlingBehavior bölümünde shortSnapVelocityThreshold'ı tanıtın. (I7379e, b/275579012)
  • FlowRowScope ve FlowColumnScope ekler. (I54fe2)

Hata Düzeltmeleri

  • Kısıtlamalar minWidth ve minHeight olduğunda metinle ilgili semantik bilgileri almak için yapılan aramalar artık kilitlenmiyor. (Ibd072)
  • Dialog composable'ı tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan regresyon düzeltildi. (I82551, b/262140644)

Sürüm 1.5.0-alpha03

19 Nisan 2023

androidx.compose.foundation:foundation:1.5.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha03 yayınlandı. 1.5.0-alpha03 sürümü şu commit'leri içerir.

Bu sürüm, Compose için yeni metin oluşturma yığınını etkinleştirir. Yeni yığın, performans için optimize edilmiştir ve görünürde herhangi bir değişiklik görmezsiniz.

Oluşturulan metinde değişiklikler görürseniz davranış farkını onaylamak için NewTextRendering1_5 = false değerini ayarlayarak hata ayıklama yapabilirsiniz. Bu ayarın yapılması, yeniden oluşturmayı zorlar. Lütfen davranış farklılıklarını hata olarak bildirin.

Hata ayıklama işareti, 1.5 beta01 sürümünden önce kaldırılacak.(Iada23, b/246960758)

API Değişiklikleri

  • FlowColumn/FlowRow öğesini satır içi yapın. (Idab37)

Sürüm 1.5.0-alpha02

5 Nisan 2023

androidx.compose.foundation:foundation:1.5.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha02 yayınlandı. 1.5.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • LazyGrid içinde sabit boyutlu hücreler için destek eklendi ve bu hücrelerin çapraz eksen düzeniyle düzenlenmesi sağlandı. (I83ed9, b/235121277, b/267942510)
  • LazyStaggeredGrid içinde sabit boyutlu şeritler için destek eklendi ve bunlar çapraz eksen düzenlemesiyle düzenlendi. (I7d519)
  • AnnotatedString içindeki UrlAnnotation artık TalkBack gibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • Metinle ilgili test işlemleri (ör. performTextInput), artık alana tıklamak yerine semantik işlem kullanılarak doğrudan odaklanma isteğinde bulunacak. (I6ed05)
  • FlowRow öğesinde verticalArrangement ve FlowColumn öğesinde horizontalArrangement kullanılarak eksenler arası boşluk/düzenleme desteği eklendi. Ayrıca FlowRow/FlowColumn içindeki üst düzey verticalAlignment ve horizontalAlignment de kaldırılır. Geliştiriciler bunun yerine Modifier.align kullanabilir. Bu, verticalAlignment ve verticalArrangement adlandırma kuralları arasındaki karışıklığı azaltır. (I87b60, b/268365538)

Sürüm 1.5.0-alpha01

22 Mart 2023

androidx.compose.foundation:foundation:1.5.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha01 yayınlandı. 1.5.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Metin ve BasicText, yeni değiştirici sistemini kullanacak şekilde yeniden düzenlendi. Bu, birçok durumda önemli performans iyileştirmeleri sağlar. Herhangi bir değişiklik görünmemelidir. (If1d17, b/246961435)
  • Metin düzenleyici düğümlerinde IME işlemini çağırmak için PerformImeAction anlamsal yapı işlemi eklendi. (Ic606f, b/269633506)

Hata Düzeltmeleri

  • Modifier.hoverable'ın iç kısımları güncellendi. hoverable değiştiricisi yalnızca etkinleştirilmişse inceleyicide gösterilir. (I82103)

Sürüm 1.4

Sürüm 1.4.3

3 Mayıs 2023

androidx.compose.foundation:foundation:1.4.3 ve androidx.compose.foundation:foundation-layout:1.4.3, değişiklik yapılmadan (yalnızca sürüm yükseltme) yayınlanır.

Sürüm 1.4.2

19 Nisan 2023

androidx.compose.foundation:foundation:1.4.2 ve androidx.compose.foundation:foundation-layout:1.4.2 yayınlandı. 1.4.2 sürümü şu commit'leri içerir.

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.foundation:foundation:1.4.1 ve androidx.compose.foundation:foundation-layout:1.4.1 yayınlandı. 1.4.1 sürümü şu commit'leri içerir.

Sürüm 1.4.0

22 Mart 2023

androidx.compose.foundation:foundation:1.4.0 ve androidx.compose.foundation:foundation-layout:1.4.0 yayınlandı. 1.4.0 sürümü şu commit'leri içerir.

1.3.0 sürümünden beri yapılan önemli değişiklikler

  • Text ve TextField'ye, ayrıca alt düzeydeki Paragraf'a Emoji uyumluluğu entegrasyonu eklendi. Emojicompat yapılandırıldığında bu ayar varsayılan olarak etkindir.
  • EmojiCompat, PlatformParagraphStyle kullanılarak belirli bir metinde yapılandırılabilir.
  • LazyStaggeredGrid(I28252) için tam satır aralığı desteği eklendi.
  • onHover deneysel özelliğinin ClickableText (I6938f) kampanyasına eklenmesi
  • runComposeUiTest işlevi ve CoroutineContext parametrelerini kabul eden create*ComposeRule işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tüm LaunchedEffect ve rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)
  • FlowRow ve FlowColumn artık @ExperimentalFoundationApi olarak kullanılabilir. Bu sayede, ana eksende yeterli alan yoksa yeni bir satıra geçecek bileşenlerin satır ve sütun tabanlı daha esnek bir düzeni sağlanır. (I3a7b2)
  • Modifier.basicMarquee(), içeriği kayan bant efektiyle göstermek için deneysel olarak kullanılabilir. (I2df44, b/139321650)

Sürüm 1.4.0-rc01

8 Mart 2023

androidx.compose.foundation:foundation:1.4.0-rc01 ve androidx.compose.foundation:foundation-layout:1.4.0-rc01 yayınlandı. 1.4.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni bir düşük düzeyli PlatformTextInputAdapter API'si kullanıma sunuldu. (I58df4)
  • LazyStaggeredGrid'ya ters düzen desteği eklendi. (I3ef4a)

Hata Düzeltmeleri

  • BasicTextField'nın SetText anlamsal yapı işlemi artık metin arabelleğini IME güncellemeleri ve test fonksiyonlarıyla (ör. performTextReplacement) aynı kod yolunu kullanarak güncelleyecek.
  • performTextClearance, performTextReplacement ve performTextSelection metin testi işlevleri artık SemanticsActions kullanıyor. (I0807d, b/269633168, b/269624358)

Sürüm 1.4.0-beta02

22 Şubat 2023

androidx.compose.foundation:foundation:1.4.0-beta02 ve androidx.compose.foundation:foundation-layout:1.4.0-beta02 yayınlandı. 1.4.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Layout öğesinin yeniden kullanılacağı (ör. LazyColumn öğesi olarak) durumun düzgün şekilde ele alınması için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni bir Modifier.Node.onReset() geri çağırma işlevi eklendi. Odaklanmış durumun düzgün şekilde sıfırlanması için FocusTargetModifierNode düzeltildi. (I65495, b/265201972)
  • Canvas'a metin çizilirken farklı karıştırma algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)
  • modifierElementOf() API'si kaldırıldı. Lütfen bunun yerine doğrudan ModifierNodeElement üzerinden uzatın. (Ie6d21)

Hata Düzeltmeleri

  • Seçim tutamaçlarını ayarlamak artık kısmi karakter seçimine izin vermiyor. (Idedd1)
  • Boş TextField üzerinde Ctrl+Backspace tuşlarına basıldığında kilitlenme sorunu düzeltildi (I0427f, b/244185537)

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.foundation:foundation:1.4.0-beta01 ve androidx.compose.foundation:foundation-layout:1.4.0-beta01 yayınlandı. 1.4.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • 1.3 sürümünden itibaren Text ve TextField'ye, ayrıca alt düzeydeki paragraf öğesine emoji uyumluluğu entegrasyonu eklendi. Emojicompat yapılandırıldığında bu ayar varsayılan olarak etkindir.
  • EmojiCompat, PlatformParagraphStyle kullanılarak belirli bir metinde yapılandırılabilir.

API Değişiklikleri

  • PinnableContainer API'nin, kompozisyonun dışına çıkan ancak yine de etkin olması gereken öğeleri korumak için tüm LazyLayouts'lerde kullanılan ortak uygulaması eklendi. (If45a4)
  • PinnableContainer.PinnedHandle.unpin(), release() olarak yeniden adlandırıldı (I4667a)

Harici Katkı (External Contribution)

  • mainAxisItemSpacing özelliği LazyListLayoutInfo, LazyGridLayoutInfo ve LazyStaggeredGridItemInfo'ye eklendi (I52fad)

Sürüm 1.4.0-alpha05

25 Ocak 2023

androidx.compose.foundation:foundation:1.4.0-alpha05 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha05 yayınlandı. 1.4.0-alpha05 sürümü şu commit'leri içerir.

Yeni Özellikler

  • LazyStaggeredGrid'ya tam satır aralığı desteği eklendi (I28252)
  • onHover deneysel özelliği ClickableText'e ekleniyor (I6938f)
  • runComposeUiTest işlevi ve CoroutineContext parametrelerini kabul eden create*ComposeRule işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tüm LaunchedEffect ve rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)

API Değişiklikleri

  • OverscrollEffect'nın öncesi/sonrası API'lerini birleştirerek birleşik "decorator" applyToScroll ve applyToFling işlevlerini oluşturur. Yeni API şekliyle kaydırma sonu efektinin nasıl uygulanacağına dair örnekler için dokümandaki güncellenmiş örneklere bakın. (I8a9c4, b/255554340)
  • Satır içi/kullanımdan kaldırılmış-gizli işlevlerin türü/null değer alabilme durumuyla ilgili daha fazla bilgi (I24f91)
  • TextStyle'deki LineBreak ve Hyphens API'leri kararlı sürüme yükseltildi. (Ic1e1d)

Hata Düzeltmeleri

  • Metin alanlarındaki imleç, animasyonlar devre dışı bırakıldığında bile yanıp sönmeye devam edecek. (I95e70, b/265177763)
  • Modifier.basicMarquee artık sistem ayarlarında animasyonlar devre dışı bırakıldığında bile animasyonlu olarak gösteriliyor. (I23389, b/262298306, b/265177763)

Harici Katkı (External Contribution)

  • TextInputSession ve TextInputService içindeki notifyFocusedRect yöntemlerinin desteği tekrar sonlandırılmıyor. (I23a04, b/262648050)

Sürüm 1.4.0-alpha04

11 Ocak 2023

androidx.compose.foundation:foundation:1.4.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha04 yayınlandı. 1.4.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • FlowRow ve FlowColumn artık @ExperimentalFoundationApi olarak kullanılabilir. Bu sayede, ana eksende yeterli alan yoksa yeni bir satıra geçecek bileşenlerin satır ve sütun tabanlı daha esnek bir düzeni sağlanır. (I3a7b2)
  • Modifier.basicMarquee(), içeriği kayan bant efektiyle göstermek için deneysel olarak kullanılabilir. (I2df44, b/139321650)

API Değişiklikleri

  • FocusRequesterModifier yerine FocusRequesterNode kullanılacak (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)
  • AndroidFont oluşturucusu variationSettings ile birlikte artık kararlı bir API'dir ve yeni yazı tipi tanımlayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)
  • Mevcut öğenin sabitlenmesine olanak tanıyan bir kompozisyon yereli aracılığıyla tembel listeler tarafından yayılan PinnableContainer API'si kullanıma sunuldu. Bu durumda, görünümden kaydırıldığında bu tür öğeler atılmaz. Örneğin, Modifier.focusable(), bu mekanizma aracılığıyla odaklanılan öğeyi sabitler. (Ib8881, b/259274257, b/195049010)
  • Kaydırılabilir öğelerin bringIntoViewRequesters ve odaklanılabilir öğelerin yanıt verme şekli, bu işlemlerin karmaşıklığını daha iyi modellemek ve daha fazla uç durumu ele almak için yeniden yazıldı. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114)
  • Kullanımdan kaldırılan ve gizlenen işlevlerin daha fazla dönüş türü boş değer atanabilirliği (Ibf7b0)
  • Metnin Static(default) veya animasyonlu olmasını tanımlamak için TextMotion deneysel özelliği TextStyle öğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated kullanın. (I24dd7)
  • Android platformunda odaklanma ile gezinme davranışını düzeltmek için TextFieldFocusModifier ekleyin (I00303)
  • Diğer DrawScope işlevleriyle tutarlı olması için drawText işlevindeki maxSize: IntSize bağımsız değişkeni size: Size ile değiştirildi. size, varsayılan olarak Size.Unspecified olarak ayarlanır. Bu ayar, önceki varsayılan davranışı değiştirmemelidir. (Icd27d)

Hata Düzeltmeleri

  • SnapFlingBehaviour'daki tutturma fiziğinde daha doğal bir his için ayarlamalar yapıldı.

Bilinen Sorun

  • androidx.compose.foundation:1.4.0-alpha03 sürümünden androidx.compose.foundation:1.4.0-alpha04 sürümüne güncelleme yaparken java.lang.NoSuchFieldError hatasıyla karşılaşabilirsiniz. Sorun burada ilk olarak bildirildi. Düzeltme gönderildi ve bir sonraki Compose güncellemesinde kullanıma sunulacak. Geçici çözüm olarak androidx.compose.material ve androidx.compose.material3 kitaplıklarınızı en yeni sürüme(1.1.0-alpha04) güncelleyin veya androidx.compose.foundation kitaplığınızı 1.4.0-alpha03 sürümüne düşürün.

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.foundation:foundation:1.4.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha03 yayınlandı. 1.4.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Compose kuralı kullanılan kullanıcı arayüzü testlerinde, withFrameNanos geri çağırmaları sırasında devam ettirilen devamlılıklar, tüm çerçeve geri çağırmaları çalışmayı bitirene kadar gönderilmez. Bu, normal şekilde çalıştırıldığında oluşturma davranışıyla aynıdır. Ancak eski davranışa dayalı testler başarısız olabilir. Bu durum yalnızca doğrudan withFrameNanos veya withFrameMillis işlevlerini çağıran ve bu işlevlere iletilen geri çağırma işlevlerinin dışında mantığı olan, geri çağırma işlevlerinin içine taşınması gerekebilecek kodları etkilemelidir. Bu CL'de örnekler için animasyon testi değişikliklerine bakın.
  • onPerformTraversals: (Long) -> Unit parametresi, TestMonotonicFrameClock oluşturucuya ve fabrika işlevine isteğe bağlı olarak eklendi. Bu parametre, withFrameNanos geri çağırmalarından sonra ancak arayanların eşzamanlı rutinleri devam ettirilmeden önce kod çalıştırmak için kullanılır. (Idb413, b/254115946, b/222093277, b/255802670)
  • Sayfa erişilebilirlik işlemleri: PageUp, PageDown, PageLeft, PageRight. Bunların yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab)
  • HorizontalPager ve VerticalPager'ı tanıtıyoruz. Bu bileşenler, composable'ları Pager'da göstermenin bir yoludur. Çağrı cihazlarını kontrol etmek ve mevcut durumlarıyla ilgili bilgi sorgulamak için PagerState tanıtıldı. Pager'ın sayfa boyutunu kontrol etmenin bir yolu olan PageSize tanıtıldı. Bu, Pager'lar gibi bir bant oluşturmak için kullanılabilir. Pager'ın hızlıca kaydırma davranışında tutturma özelliğinin nasıl çalışacağını kontrol etmenin bir yolu olan PagerSnapDistance özelliği kullanıma sunuldu. (I01120)
  • Fling'in nereye yerleşeceğini anlamaya yardımcı olmak için SnapFlingBehavior.performFling'da aşırı yükleme özelliği kullanıma sunuldu. (I569f6)
  • OverscrollEffect#isEnabled kaldırıldı. Bu işareti hatırlayıp ayarlamanız gerekmez. Kaydırma sonu efektinin gösterilmesini istemediğiniz durumlarda (ör. ScrollableState#canScrollForward/backward her ikisi de yanlış değerini döndürüyorsa) etkinlikleri kaydırma sonu efektine göndermeyin. (I1a4b0, b/255554340, b/255557085)
  • ScrollableState öğesinin her iki yönde de kaydırma alanı olup olmadığını (aralığının minimum veya maksimum değerinde olup olmadığını) sorgulamak için ScrollableState#canScrollForward ve ScrollableState#canScrollBackward eklendi. Bu ayar, ScrollableState'nın mevcut uygulamalarıyla geriye dönük uyumluluk için varsayılan olarak doğru değerine ayarlanır. Tüketiciler, kullanıcılara kaydırma için yer olduğunu göstermek amacıyla bu özelliği kullanabilir. Ayrıca, gereksiz işi azaltmak için belirli bir yönde kaydırma alanı olmayan ScrollableStates'lara delta göndermeyi önlemek için de kullanılabilir. (Idf1a0, b/255557085)
  • Üst öğelerin kaydırma bilgilerini sorgulamak için bir Modifier API eklendi. (I2ba9d, b/203141462)
  • Hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için Clickable içinde kullanılır.
  • Scrollable ViewGroup içinde kullanıldığında Clickables öğesinin dalgalanmaları doğru şekilde geciktirmemesi sorunu düzeltildi.
  • Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda basma işlemlerini doğru şekilde geciktirmek için çekmeceler ve sayfalar güncellendi.
  • snapStepSize adlandırmasını, SnapLayoutInfoProvider içindeki diğer yöntemlerle tutarlı olacak şekilde güncelleyin. (Ife67c)
  • Compose'e EmojiCompat eklendi (Ibf6f9, b/139326806)
  • consumedWindowInsets(), consumeWindowInsets() olarak, withConsumedWindowInsets() ise onConsumedWindowInsetsChanged() olarak yeniden adlandırıldı ve değiştiriciler herkese açık hâle getirildi. (Ie44e1)

Hata Düzeltmeleri

  • Modifier.animateItemPlacement() ve Lazy Grid'lerle ilgili kilitlenme sorunu düzeltildi. Yeni öğe sayısı, önceki öğe sayısından daha az olduğunda bazı durumlarda bu sorun yaşanıyordu. (I0bcac, b/253195989)

Sürüm 1.4.0-alpha02

9 Kasım 2022

androidx.compose.foundation:foundation:1.4.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha02 yayınlandı. 1.4.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • awaitFirstDown ve waitForUpOrCancellation artık daha fazla esneklik için PointerEventPass kabul ediyor. (I7579a, b/212091796)
  • Lazy* API'lerinden beyondBoundCount API'sine geri dönme (I12197)
  • Lazy API'lerde, görüntü alanının dışındaki öğeleri oluşturup yerleştirmek için parametre kullanıma sunuldu (I69e89, b/172029355).
  • BasicText ve BasicTextField için minLines parametresi eklendi. Bu composable'ların minimum yüksekliğini satır sayısı (I24294, b/122476634) cinsinden ayarlamaya olanak tanır.

Sürüm 1.4.0-alpha01

24 Ekim 2022

androidx.compose.foundation:foundation:1.4.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha01 yayınlandı. 1.4.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Hareket algılayıcılar için yeni bir yöntem (awaitEachGesture()) eklendi. forEachGesture() ile benzer şekilde çalışır ancak hareketler üzerindeki döngü tamamen AwaitPointerEventScope içinde gerçekleştiğinden yinelemeler arasında etkinlik kaybı yaşanmaz.
  • forEachGesture(), hareketler arasında etkinliklerin kaybolmasına izin verdiği için awaitEachGesture() lehine kullanımdan kaldırıldı. (Iffc3f, b/251260206)
  • Animasyonun ilerleme durumunu belirlemek ve animasyon tamamlandıktan sonra IME'nin nerede olacağını bilmek için WindowInsets.imeAnimationSource ve WindowInsets.imeAnimationTarget eklendi. (I356f1, b/217770337)

Sürüm 1.3

Sürüm 1.3.1

9 Kasım 2022

androidx.compose.foundation:foundation:1.3.1 ve androidx.compose.foundation:foundation-layout:1.3.1 yayınlandı. 1.3.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • BeyondBoundsLayout'daki performans sorununu düzeltin (aosp/2255266)
  • ContentInViewModifier, eklenmediği sürece düzen koordinatlarını okumaz (aosp/2241316)

Sürüm 1.3.0

24 Ekim 2022

androidx.compose.foundation:foundation:1.3.0 ve androidx.compose.foundation:foundation-layout:1.3.0 yayınlandı. 1.3.0 sürümü şu commit'leri içerir.

1.2.0 sürümünden beri yapılan önemli değişiklikler

  • LazyVerticalStaggeredGrid ve LazyHorizontalStaggeredGrid'nin deneysel sürümleri kullanıma sunuldu.
  • SnapFlingBehavior, rememberSnapFlingBehavior ve diğer ilgili API'ler deneysel olarak eklendi.
  • Modifier.clickable, Modifier.toggleable ve Modifier.selectable, klavye veya uzaktan kumandadaki d-pad ile tıklandığında artık dalgalanma efekti gösteriyor.

Sürüm 1.3.0-rc01

5 Ekim 2022

androidx.compose.foundation:foundation:1.3.0-rc01 ve androidx.compose.foundation:foundation-layout:1.3.0-rc01 yayınlandı. 1.3.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeterli hızlı kaydırma hızı olmadığında azalmayı önlemek için yaklaşma adımında kullanılan lowVelocityAnimationSpec eklendi. (Iaeb27)
  • Metinde otomatik tireleme özelliğini desteklemek için yeni deneysel API Hyphens eklendi (Iaa869).

Sürüm 1.3.0-beta03

21 Eylül 2022

androidx.compose.foundation:foundation:1.3.0-beta03 ve androidx.compose.foundation:foundation-layout:1.3.0-beta03 yayınlandı. 1.3.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Metinde satır sonunu özelleştirme seçenekleri ekleyin. (I86907)
  • BringIntoViewResponder artık bir isteği işlerken en güncel sınırları alabilir. (If86a5, b/241591211)
  • Öğeler arasındaki boşluklar için deneysel Staggered Grid (I10b82) desteği eklendi.
  • Deneysel Staggered Grid (I342ea) özelliğine içerik dolgusu ekleme
  • Minimum genişlik kısıtlamalarını desteklemek için TextMeasurer.measure yönteminde size:IntSize bağımsız değişkeni constraints: Constraints ile değiştirildi. (I37530, b/242707525)
  • Modifier.withConsumedWindowInsets(), windowInsetsPadding dışında kullanılmak üzere WindowInsets olarak tüketilecek şekilde eklendi.
  • WindowInsets öğesinin yeniden oluşturulmadan kolayca değiştirilmesine olanak tanıyan MutableWindowInsets özelliği eklendi. (I7fd28, b/237019262, b/243119659)

Sürüm 1.3.0-beta02

7 Eylül 2022

androidx.compose.foundation:foundation:1.3.0-beta02 ve androidx.compose.foundation:foundation-layout:1.3.0-beta02 yayınlandı. 1.3.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Deneysel StaggeredGrid'nın ilk sürümü (Ia48be)
  • FocusDirection.In ve FocusDirection.Out, FocusDirection.Enter ve FocusDirection.Exit olarak yeniden adlandırıldı (Ia4262, b/183746982)
  • rememberSnapFlingBehavior içinde LazyLists'de tutturmayı hızlı bir şekilde etkinleştirmenin yolunu sunan bir aşırı yükleme kullanıma sunuldu. (Ifb48a)
  • snapFlingBehavior fabrikası, beton SnapFlingBehavior sınıfıyla değiştirildi. API kullanıcılarının Dp<->Px dönüşümlerini kolaylaştırmak için SnapLayoutInfoProvider yöntemleri yoğunlukla sınırlandırıldı. (I54a11)
  • Yerleştirilebilir öğelerin listesini döndürmek için LazyLayoutMeasureScope.measure değerini güncelleyin ve döndürülen değerin istenen değişmezliğini vurgulayın. (I48b7c)
  • SnapLayoutInfoProvider, LazyLists için FlingBehavior snap'ini etkinleştirmek üzere kullanılabilecek bir SnapLayoutInfoProvider örneği oluşturmak için LazyListState alır. (I2dd10)

Hata Düzeltmeleri

  • Diğer await işlevleriyle eşleşmesi için AwaitPointerEventScope#awaitLongPressOrCancellation yeniden düzenlendi (I646e6).

Sürüm 1.3.0-beta01

24 Ağustos 2022

androidx.compose.foundation:foundation:1.3.0-beta01 ve androidx.compose.foundation:foundation-layout:1.3.0-beta01 yayınlandı. 1.3.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • pointerPosition, OverscrollEffect öğesinden kaldırıldı. İmleç konumunu önemseyen efektler, mevcut imleç konumunu almak için effectModifier öğesinde Modifier.pointerInput { } kullanabilir. (I9f606, b/241239306)
  • Daha karmaşık hareket algılama için ek yapı taşı olarak AwaitPointerEventScope#awaitLongPressOrCancellation kullanıma sunuldu (I04374, b/181577176)
  • Lazy Lists'te tutturmayı etkinleştirmek için lazyListSnapLayoutInfoProvider özelliği kullanıma sunuldu. (I3ecdf)
  • Liste tutturmayı sağlayan bir fling davranışı olan SnapFlingBehavior özelliği kullanıma sunuldu. Sabitleme düzeninizle ilgili bilgileri içeren bir SnapLayoutInfoProvider örneği sağlayın. (Ie754c)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.foundation:foundation:1.3.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha03 yayınlandı. 1.3.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Kaynak yazı tipleri artık yazı tipi varyasyonu ayarlarının (API 26+) belirlenmesini destekliyor. (I900dd, b/143703328)
  • DeviceFontFamilyNameFont'da değişken yazı tipi desteği (Ic1279, b/143703328)
  • PlatformTextStyle ve LineHeightStyle öğelerinden deneysel ek açıklamayı kaldırdı. (I64bef)
  • Metin alanları artık bir VisualTransformation tarafından sağlanan OffsetMapping geçersiz dizinler döndürdüğünde daha ayrıntılı istisnalar oluşturacak. (Ie73f9, b/229378536)
  • Öğe sağlayıcı mantığını Lazy düzenler arasında paylaşmak için deneysel API'ler kullanıma sunuldu. (Ic891c)
  • ScrollableDefaults.reverseDirection() artık deneysel bir özellik değil. (Iba646)
  • SemanticsModifier.id desteği sonlandırıldı ve bunun yerine semantik kimlik LayoutInfo.semanticsId olarak değiştirildi. (Iac808, b/203559524)
  • checkScrollableContainerConstraints() artık deneysel bir özellik değil. (I2c290)
  • Modifier.clipScrollableContainer() artık deneysel bir özellik değil. (Ia2b44)
  • TextInputService.show|hideSoftwareKeyboard desteğini sonlandırma Lütfen uygulama kodunda SoftwareKeyboardController, IME yönetimi kodunda ise TextInputSession kullanın. (I14e4c, b/183448615)

Sürüm 1.3.0-alpha02

27 Temmuz 2022

androidx.compose.foundation:foundation:1.3.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • drawText uzantı işlevi, DrawScope üzerinde Canvas ve drawBehind gibi DrawScope üzerinde çalışan composable'lar ve değiştiriciler üzerinde çok stilli metin çizmenin bir yolunu sağlamak için eklendi. (I16a62, b/190787898)

Hata Düzeltmeleri

  • Odaklanılmış bir metin alanı devre dışı bırakıldığında artık sanal klavye gizlenecek. (I6e3e4, b/237308379)
  • Velocity Tracker'a InputEventChange etkinlikleri eklerken artık konumlar yerine delta değerlerini dikkate alacağız. Bu sayede, hedef öğe hareket etse bile (Icea9d, b/216582726, b/223440806, b/227709803) hızın tüm durumlarda doğru şekilde hesaplanması sağlanacak.
  • Odaklanılmış bir alt öğe içeren kaydırılabilir öğeler, boyutları küçültüldüğünde (boyut animasyonlu olsa bile) odaklanılmış alt öğeyi görünür tutmak için artık doğru şekilde kaydırılıyor. (I80867, b/230756508, b/220119990)
  • Seçim etkinken TextField temizlenip yeniden doldurulduğunda yaşanan kilitlenme sorunu düzeltildi. (I1235b, b/208655565, b/214253689)

Sürüm 1.3.0-alpha01

29 Haziran 2022

androidx.compose.foundation:foundation:1.3.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • UrlAnnotation açıklama türü ve AnnotatedString'lerde TalkBack bağlantı desteğini sağlayan ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)

Hata Düzeltmeleri

  • BasicTextField cursorBrush artık imleç zamanlayıcısı yeniden başlatılmadan animasyonlu hale getirilebilir. (I812e6, b/236383522)

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

androidx.compose.foundation:foundation:1.2.1 ve androidx.compose.foundation:foundation-layout:1.2.1 yayınlandı. 1.2.1 sürümü şu commit'leri içerir.

Sürüm 1.2.0

27 Temmuz 2022

androidx.compose.foundation:foundation:1.2.0 ve androidx.compose.foundation:foundation-layout:1.2.0 yayınlandı. 1.2.0 sürümü şu commit'leri içerir.

1.1.0 sürümünden beri yapılan önemli değişiklikler

  • LazyVerticalGrid ve LazyHorizontalGrid artık kararlı.
  • Artık Lazy listelerdeki ve ızgaralardaki öğeler için içerik türü belirtebilirsiniz. Bu sayede bileşenler, öğeleri daha verimli bir şekilde yeniden kullanabilir.
  • Tembel listeler ve ızgaralarda artık kullanıcı hareketleriyle kaydırmayı devre dışı bırakmaya olanak tanıyan userScrollEnabled parametresi var.
  • LazyLayout adlı yeni bir deneysel API eklendi. Bu API, tembel listeleri ve ızgaraları desteklemek için şirket içinde kullandığımız API'dir.
  • OverscrollEffect API deneysel olarak kullanıma sunuldu. Özel kaydırılabilir kapsayıcılara standart bir platform efekti eklemenin yanı sıra özel aşırı kaydırma efektleri de tanımlayabilirsiniz.
  • Görünümler ve beste kaydırma aktörleri arasında birlikte çalışabilirlik sağlamak için iç içe kaydırma birlikte çalışabilirlik API'leri kullanıma sunuldu.
  • Tüm kaydırma kapsayıcılarına fare ve izleme paneliyle kaydırma özelliği eklendi.

Sürüm 1.2.0-rc03

29 Haziran 2022

androidx.compose.foundation:foundation:1.2.0-rc03 ve androidx.compose.foundation:foundation-layout:1.2.0-rc03 yayınlandı. 1.2.0-rc03 sürümü şu commit'leri içerir.

  • 1.2.0-rc02 sürümünden bu yana değişiklik yapılmadı.

Sürüm 1.2.0-rc02

22 Haziran 2022

androidx.compose.foundation:foundation:1.2.0-rc02 ve androidx.compose.foundation:foundation-layout:1.2.0-rc02 yayınlandı. 1.2.0-rc02 sürümü şu commit'leri içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.compose.foundation:foundation:1.2.0-rc01 ve androidx.compose.foundation:foundation-layout:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Modifier.scrollable aşırı kaydırma efektlerine izin vermek için deneysel bir OverscrollEffect tanıtıldı.
  • Deneysel LocalOverScrollConfiguration, foundation.gesture paketinden temel pakete taşındı ve LocalOverscrollConfiguration olarak yeniden adlandırıldı (If19fb, b/204650733)
  • Compose kitaplıklarındaki arayüzler artık JDK8 varsayılan arayüz yöntemleri kullanılarak oluşturuluyor (I5bcf1).
  • Kaydırılabilir kapsayıcıları iç içe yerleştirmediğimizi kontrol etmemizi sağlayan deneysel bir API checkScrollableContainerConstraints() kullanıma sunuldu. LazyLayout üzerinden kendi kaydırılabilir tembel düzenlerinizi oluştururken bu işlevden yararlanabilirsiniz. (Id6fab, b/233352497)
  • Kullanımdan kaldırılan LazyVerticalGrid, androidx.compose.foundation.lazy paketinden kaldırıldı. Yeni kararlı API, androidx.compose.foundation.lazy.grid konumunda bulunur (I73c76, b/225192009).

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.compose.foundation:foundation:1.2.0-beta03 ve androidx.compose.foundation:foundation-layout:1.2.0-beta03 yayınlandı. 1.2.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeni deneysel IntervalList ve MutableIntervalList eklendi. Bir değer listesinin birden fazla aralıkla gösterilmesine olanak tanır. Liste öğelerinin birden fazla öğe/öğeler çağrısıyla tanımlanabildiği LazyColumn tarafından kullanılan DSL'ye benzer kendi DSL'nizi tanımlamak istediğinizde bu özellikten yararlanabilirsiniz. (I2d05e, b/228580728)

Hata Düzeltmeleri

  • WindowInsets.ime ile ilgili dokümanlarda, ime yerleşimlerinin API 23'ten itibaren bildirildiği ancak yalnızca 30 ve üzeri sürümlerde animasyonlu olduğu belirtildi. (Ia7fc0, b/230756508)
  • İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme sorunu yaşanmayacak.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand artık oluşturucu bağımsız değişkenlerinin negatif olmamasını gerektiriyor. (Ica8e6, b/199919707)

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.foundation:foundation:1.2.0-beta02 ve androidx.compose.foundation:foundation-layout:1.2.0-beta02 yayınlandı. 1.2.0-beta02 sürümü şu commit'leri içerir.

  • Metnin veya TextField düzen boyutunu değiştirmeyen indirilebilir yazı tipi çözünürlüğü daha önce yeniden çizilmiyordu ve bu da eski yazı tipi görüntüsüne yol açıyordu. Bu hata düzeltmesi, metin düzeninin her zaman yeniden çizme işlemini tetiklemesini sağlar (b/229727404). (I1d49e, b/229727404)

Sürüm 1.2.0-beta01

11 Mayıs 2022

androidx.compose.foundation:foundation:1.2.0-beta01 ve androidx.compose.foundation:foundation-layout:1.2.0-beta01 yayınlandı. 1.2.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Bu, 1.2'nin ilk beta sürümüdür.

API Değişiklikleri

  • Öğeleri görünür sınırların ötesinde yerleştirdiklerinde LazyList öğesinin özel uygulamaları tarafından kullanılabilecek deneysel BeyondBoundsInterval eklendi (Ifabfb, b/184670295).
  • LineHeightBehavior, LineHeightStyle olarak yeniden adlandırıldı
  • LineVerticalAlignment, LineHeightStyle.Alignment olarak yeniden adlandırıldı
  • Yeniden adlandırılan LineHeightTrim, LineHeightStyle.Trim olarak yeniden adlandırıldı
  • LineHeightStyle içindeki varsayılan oluşturucu değerleri kaldırıldı (I582bf, b/181155707)
  • LazyLayoutItemProvider arayüzünün isteğe bağlı üyeleri için varsayılan değerler eklendi. (Iba8a0)
  • LazyLayoutItemProvider API'sinde, dizine göre birleştirilebilir lambda döndüren bir fabrika yerine artık dizini kabul eden daha basit bir composable işlev olan Item var. (Id2196)
  • LazyLayoutItemsProvider, LazyLayoutItemProvider olarak yeniden adlandırıldı (I0638c)
  • LazyLayoutItemsProvider.itemsCount, itemCount olarak yeniden adlandırıldı (Id409c)
  • TextStyle ve SpanStyle'ye fırça eklenerek gradyan renkli metin çizme özelliği sunuldu. (I53869, b/187839528)
  • trimFirstLineTop, trimLastLineBottom özellikleri LineHeightBehavior tek bir enum olarak değiştirildi: LineHeightTrim. LineHeightTrim, iki Boole değeriyle tanımlanan 4 durum değerine sahiptir: FirstLineTop, LastLineBottom, Her İkisi ve Hiçbiri (Ifc6a5, b/181155707)
  • TextStyle ve ParagraphStyle. LineHeightBehavior kontrollerine LineHeightBehavior eklendi. Bu kontrol, satır yüksekliğinin ilk satırın üst kısmına ve son satırın alt kısmına uygulanıp uygulanmayacağını belirler. Ayrıca, TextStyle(lineHeight) tarafından sağlanan alandaki satırın hizalamasını da tanımlar.

    Örneğin, LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) aracılığıyla CSS'nin tanımladığına benzer bir davranış elde edilebilir.

  • trimFirstLineTop, trimLastLineBottom yapılandırmaları yalnızca includeFontPadding yanlış olduğunda doğru şekilde çalışır. (I97332, b/181155707)

  • Geliştiricilerin IME'yi kaydırma yoluyla kontrol edebilmesi için deneysel imeNestedScroll() değiştiricisi eklendi. (I60759)

Hata Düzeltmeleri

  • Odaklanılmış durumdayken oluşturmadan kaldırıldığında metin alanlarının klavyeyi gizlememesiyle ilgili regresyon düzeltildi. (I7a410, b/230536793, b/225541817)
  • Yükseklik sınırlı olduğunda ve tüm metin satırlarına sığmadığında üç nokta desteklenir (Ie528c, b/168720622).
  • BringIntoViewRequester.bringIntoView artık istek tamamlanana veya yeni ve çakışmayan bir istek tarafından kesintiye uğratılana kadar her zaman askıya alınacak. Çakışan istekler sıraya alınır. (I43e7f, b/216790855)
  • Tamamen çakışan dikdörtgenler için eşzamanlı BringIntoViewRequester.bringIntoView çağrıları artık yalnızca daha büyük dikdörtgenin isteğini karşılayacak. (I34be7, b/216790855, b/184760918)
  • Varsayılan olarak etkinleştirilir includeFontPadding. TextStyle.platformTextStyle özelliğini kullanarak includeFontPadding özelliğini devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz ancak o zamana kadar bu değişiklik, satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre etmemize ve TextField kırpma sorunlarını çözmemize olanak tanır. (I01423, b/171394808)
  • Modifier.bringIntoViewRequester artık onGloballyPositioned kullanmıyor. (I630f5)

Harici Katkı (External Contribution)

  • Dikey olarak kaydırdığımızda MouseInjectionScope.scroll(delta = someDelta) artık Android'de ters çevriliyor (someDelta pozitifse aşağı kaydırılır) (Ifb697, b/224992993)

Sürüm 1.2.0-alpha08

20 Nisan 2022

androidx.compose.foundation:foundation:1.2.0-alpha08 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha08 yayınlandı. 1.2.0-alpha08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • FontFamily.SansSerif kullanılırken Android'deki sistem yazı tiplerinin tüm ağırlıklarını gösterir. Bu, API 21-28'de sans-serif-medium gibi yedek yazı tipi adlarını dahili olarak kullanır. Bu, davranış değişikliğidir. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları destekleniyordu. (I380fe, b/156048036, b/226441992)
  • Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor. Şu anda Constraints.maxHeight iletmek herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre üç nokta ekleme gibi bazı hesaplamalar yapılmasına olanak tanır. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() artık yeni öğelerin eklenmesine izin vermeyen, MutableSet benzeri özel bir sınıfı kabul ediyor. (Icd314)
  • Kısmi tüketim (aşağı veya konum) PointerInputChange'da kullanımdan kaldırıldı. Değişikliği tamamen kullanmak için consume() kullanabilirsiniz. Başka bir kullanıcının değişikliği daha önce kullanıp kullanmadığını belirlemek için isConsumed simgesini kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturur. Bu, kopyalardan biri kullanıldığında PointerInputChange kopyalarının da kullanılacağı anlamına gelir. Sınırsız bir PointerInputChange oluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)
  • Yeni deneysel LazyLayout API kullanıma sunuldu. Bu sayede LazyColumn LazyVerticalGrid gibi kendi bileşenlerinizi oluşturabilirsiniz. API'nin erken aşamada olduğunu ve gelecekteki sürümlerde değiştirilebileceğini unutmayın. (Iba2bc, b/166591700)
  • AndroidFont artık typefaceLoader öğesini oluşturucu parametresi olarak alıyor. (I2c971)
  • WindowInsets artık görünürlüğü (pencereyle kesişip kesişmediklerine bakılmaksızın ekranda olup olmadıkları) ve cihazda kullanılabilir olup şu anda etkin olmamaları durumunda olabilecekleri boyutu gösteriyor. (I65182, b/217770337)

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.foundation:foundation:1.2.0-alpha07 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha07 yayınlandı. 1.2.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Tembel düzenlerin alt öğelerinin, şu anda oluşturulan öğelerin kaldırılmasını engellemesine olanak tanıyan bir PinnableParent API'si eklendi (Ibbdd0, b/184670295)
  • LazyListLayoutInfo ve LazyGridLayoutInfo artık beforeContentPadding ve afterContentPadding alanlarına sahip (I3b628, b/200920410)
  • IME'de ondalık ayırıcıyı dahil etmek için Keyboard.Number'ye alternatif olarak KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • Yazı tipi geri dönüşüm zincirleri sırasında isteğe bağlı olarak sisteme yüklenen yazı tiplerini aramak için Font(DeviceFontFamilyName) adlı yeni yazı tipi tanımlayıcısı ekleyin. (I30468, b/219754572)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'lerdir (I574c5, b/225669674)
  • TextStyle/ParagraphStyle. includeFontPadding içinde includeFontPadding için geçici uyumluluk yapılandırması eklendi. Bu yapılandırma TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) üzerinden değiştirilebilir. Bu, taşımayı etkinleştirmek için geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808)
  • Sisteme genel kalın metin erişilebilirlik ayarını (I6c1e7) entegre etmek için FontFamily.Resolver güncellendi.
  • ComposeView öğesinin consumeWindowInsets uzantı özelliği, geliştiricilerin Android WindowInsets'in kullanımını devre dışı bırakmasına olanak tanır. Bu sayede hiyerarşideki ayrı ComposeViews, birbirine müdahale etmeden her biri WindowInsets uygulayabilir. (I0ef08, b/220943142)

Sürüm 1.2.0-alpha06

23 Mart 2022

androidx.compose.foundation:foundation:1.2.0-alpha06 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha06 yayınlandı. 1.2.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Odaklanılabilir hedefe odaklanma isteğine RequestFocus anlamsal yapı işlemi eklendi. (I17b71)
  • FocusOrder, FocusProperties ile birleştirildi. focusProperties() artık focusOrder()'ün tüm özelliklerine sahip. FocusOrder ve focusOrder() desteği sonlandırıldı. focusRequester kabul eden focusOrder(), focusProperties() ile birlikte kullanılan bir focusRequester() değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler, endişeleri daha net bir şekilde ayırabilir. (I601b7)
  • WindowInsets.asPaddingValues(Density), geliştiricilerin dönüştürme işlemini kompozisyonda olmalarına gerek kalmadan yapabilmeleri için eklendi. (I94c35)
  • Mevcut düzen yönü sağdan sola ise VectorPainter içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırılması güncellendi. (I79cd9, b/185760237)

Hata Düzeltmeleri

  • Kaydırma değiştiriciler (Modifier.verticalScroll(),Modifier.horizontalScroll() ve Modifier.scrollable()), kaydırma alanı yeniden boyutlandırılırsa ve odaklanılan composable daha önce görünür durumdaysa artık odaklanılan composable'ı görünür tutmak için kaydıracak.
  • Artık TextField'lar, odaklandıklarında ve klavye gösterildiğinde, tembel olmayan kaydırılabilir bir öğenin içindeyken ve sanal giriş modu ADJUST_RESIZE olduğunda klavyenin üzerinde tutulacak. (I4a485, b/190539358, b/192043120, b/216842427)

Sürüm 1.2.0-alpha05

9 Mart 2022

androidx.compose.foundation:foundation:1.2.0-alpha05 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha05 yayınlandı. 1.2.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • LazyVerticalGrid ve LazyHorizontalGrid artık kararlı sürümde. (I307c0)
  • LazyGridItemInfo.Unknown, ayrı LazyGridItemInfo.UnknownRow ve LazyGridItemInfo.UnknownColumn ile değiştirildi (I56d51)
  • LazyVerticalGrid/LazyHorizontalGrid ve ilgili tüm API'ler .grid alt paketine taşındı. Lütfen androidx.compose.foundation.lazy içe aktarma işlemlerinizi androidx.compose.foundation.lazy.grid olarak güncelleyin. (I2d446, b/219942574)
  • Metin: includeFontPadding artık varsayılan olarak devre dışıdır. includeFontPadding=false nedeniyle oluşan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmaması sağlandı. (I31c84, b/171394808)
  • Ölçülen arayüz artık parentData özelliğini kullanıma sunuyor (I3313f)
  • Çocukların odaklanabileceği öğelerin sınırlarının gözlemlenmesine olanak tanıyan deneysel Modifier.onFocusedBoundsChanged özelliği kullanıma sunuldu. (I14283, b/220030968, b/190539358, b/192043120, b/216842427)
  • LazyHorizontalGrid eklendi. (I61ae7, b/191238807)
  • Çapraz eksen boyutlarını tanımlamak için yeni bir LazyVerticalGrid API eklendi (I17723).
  • FocusGroup değiştiricisi eklendi (I64bc0, b/213508274, b/184670295)

Hata Düzeltmeleri

  • WindowInsets.toString() artık doğru değerleri gösterecek. (I1585d)

Harici Katkı (External Contribution)

  • Kotlinx coroutines 1.6.0 kullanacak şekilde güncellendi (I3366d)

Sürüm 1.2.0-alpha04

23 Şubat 2022

androidx.compose.foundation:foundation:1.2.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha04 yayınlandı. 1.2.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • BringIntoViewResponders artık istekleri üst yanıtlayıcılara manuel olarak iletmek zorunda değildir. Bunun yerine, üst yanıtlayıcının görünür hale getirmesini istediği dikdörtgeni hemen döndürmesi gerekir. (I8e66a)
  • Metin'de asenkron yazı tipi yüklemeyi destekleme (I77057, b/214587005)
  • LazyVerticalGrid artık mevcut satıra sığmayan aralıklı öğelerden önce line breaking öğesini destekliyor. (I05c40, b/207462103)
  • excludeFromSystemGestures öğesini systemGesturesExclusion olarak yeniden adlandırdı (I19526)
  • LazyVerticalGrid artık reverseLayout'u destekliyor. (I6d7d7, b/215572963, b/211753558)
  • Geliştiricilerin yalnızca WindowInsets'teki boyutları dahil etmesine olanak tanımak için WindowInsets.only() yöntemi eklendi. (I14c94, b/217768486)
  • ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget işlevleri eklendi. Bu işlevler, bir composable işlevin, tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.

    Çoğu durumda, ek açıklamalar compose derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Çıkarılamayan durumlar arasında özel uygulayıcı oluşturma ve kullanma, soyut composable işlevler (arayüz yöntemleri gibi), composable lambda'lar olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler çıkarılır) ya da ComposeNode veya ilgili composable işlevleri kullanma yer alır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran composable işlevlerin, işlev ve composable lambda parametre türleri için CompoableTarget ek açıklaması eklemesi gerekir. Ancak, ComposableTargetMarker ile açıklama eklenmiş bir açıklama oluşturmanız ve ardından ComposableTarget yerine işaretlenmiş açıklamanın kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir composable ek açıklama, uygulayıcı parametresi olarak özelliğin sınıfının tam nitelikli adını içeren bir ComposbleTarget ile eşdeğerdir. ComposableTargetMarker kullanımına ilişkin örnek için anroidx.compose.ui.UiComposable bölümüne bakın. (I38f11)

Hata Düzeltmeleri

  • Artık LazyGridState.scrollToItem() ve LazyGridState.animateScrollToItem()'ye negatif kaydırma telafileri aktarılmasına izin veriliyor. (I025c6, b/211753558)
  • TextField için eşzamansız yazı tipi yükleme desteği eklendi. (Icc4bf, b/214587005)

Sürüm 1.2.0-alpha03

9 Şubat 2022

androidx.compose.foundation:foundation:1.2.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha03 yayınlandı. 1.2.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • TextInputSession ve TextInputService'deki notifyFocusedRect yöntemlerinin desteği sonlandırıldı ve bu yöntemler çağrılmayacak. Bunun yerine BringIntoViewRequester kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)
  • Modifier.animateItemPlacement() ile tembel ızgaraların öğeleri için animasyonlar etkinleştirildi. (Ib6621, b/211753218)
  • BringIntoViewRequester artık istekleri barındıran Android View'a yayıyor. (Ia7a51)
  • FontFamilyResolver artık LocalFontFamilyResolver.current üzerinden kullanılabilir.
    • Compose kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için createFontFamilyResolver(context) ve createFontFamilyResolver(context, coroutineScope) eklendi.
    • Paragraf ve Çok Paragraf artık FontFamily.Resolver alıyor
    • TextLayoutResult.layoutInput.fontFamilyResolver artık bu düzen için kullanılan çözümleyiciyi içeriyor. TextLayoutResult.layoutInput.resourceLoader artık kullanılmadığı için kullanımdan kaldırıldı. (Id5a45, b/174162090)
  • Android'de yeni türde yazı tipi kaynak tanımlayıcıları sağlamak için yeni bir düşük düzeyli API olan AndroidFont eklendi. Örneğin, yazı tiplerini uygulamaya özel bir arka uçtan yükleme, önceden yüklenmiş yazı tiplerini cihaz üzerinde isteğe bağlı olarak bulma veya yazı tipini mevcut Font fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.
    • İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için Font.ResourceLoaded API genişletildi. Uygulama geliştiricilerin bu API'yi doğrudan kullanması önerilmez. Yeni yazı tipi türleri eklemek için AndroidFont'a bakın.
    • Font.AndroidResourceLoader uzantı işlevi, kompozisyon dışında Font.ResourceLoader oluşturulmasına olanak tanır.
    • Kaynak yazı tipi, indirilebilir yazı tipleri XML'sine referans verdiğinde eş zamansız yüklemeye izin vermek için kaynak tabanlı yazı tiplerine loadingStrategy parametresi eklendi. (Ie5aea, b/174162090)
  • Typeface(FontFamily) oluşturucusunun desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye sürebilir. İndirilebilir yazı tipleriyle bu arama 10 saniye boyunca engellenebilir. Bunun yerine FontFamilyResolver.preload kullanın.
    • fontResource(FontFamily): Typeface kullanımdan kaldırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye sürebilir. Bunun yerine FontFamilyResolver.preload (If8e7c, b/174162090) kullanın.
  • Artık LazyVerticalGrid öğelerinin içerik türünü belirtebilirsiniz. LazyGridScope üzerindeki öğe/öğeler işlevleri artık bu tür parametreleri kabul etmektedir. Bu tür bilgileri sağlamak, öğe bileşimi yeniden kullanma mantığının daha verimli çalışmasına ve yalnızca benzer türdeki öğeler arasındaki içeriğin yeniden kullanılmasına yardımcı olur. (I7b355, b/215372836)
  • LazyListLayoutInfo ve LazyGridLayoutInfo artık yeni özelliklere sahip: viewportSize, orientation, reverseLayout (Ifc8ed, b/200920410)
  • Artık LazyColumn/LazyRow öğeleri için içerik türünü belirtebilirsiniz. LazyListScope'taki item/items işlevleri artık bu tür parametreleri kabul ediyor. Bu tür bilgileri sağlamak, öğe bileşimi yeniden kullanma mantığının daha verimli çalışmasına ve yalnızca benzer türdeki öğeler arasındaki içeriğin yeniden kullanılmasına yardımcı olur. (I26506)
  • SubcomposeLayoutState oluşturucusu maxSlotsToRetainForReuse kabul etme özelliği artık kullanımdan kaldırıldı. Bunun yerine, gelecekte yeniden kullanılmak üzere hangi yuvaların korunması gerektiği konusunda daha ayrıntılı kontrol sağlayan yeni bir arayüz olan SubcomposeSlotReusePolicy'yı kabul eden yeni bir oluşturucu vardır. (I52c4d)
  • Hem dolgu hem de boyutlandırma için WindowInsets değiştiricileri ekler. Bu sayede bazı içerikler, yerleştirilmiş alana kadar uzayabilir ancak birincil içerik yerleştirilmiş alanın dışında kalmaya devam eder. Örneğin, tamamen veya kısmen kaplanabilecek alanlardan kaçınmak için içerik alanını doldurmak üzere windowInsetsPadding kullanılabilir. (Id0395, b/213942085)

Hata Düzeltmeleri

  • TextField'lar artık odaklandıklarında ve klavye gösterildiğinde klavyenin üzerinde tutulacak. Bu durum, sanal giriş modu ADJUST_PAN olduğunda geçerli olacak. (I8eaeb, b/190539358, b/192043120)
  • Masaüstü, FontFamily.Resolver için yerel birleştirme kullanır.
    • Masaüstü FontLoader desteği sonlandırıldı
    • Masaüstünde yeni createFontFamilyResolver fabrikası (I6bbbb, b/174162090)
  • Yazılım klavyesi giriş türü, metin alanları arasında odak değiştirilirken artık titreme yapmıyor. (I1bf50, b/187746439)
  • İmleç tutma yeri gösterilirken metin alanlarında artık ek bir geri tuşuna basılması gerekmiyor. (Ideb4b, b/205726883)
  • Metin seçimi büyütme davranışları, platform büyütme aracıyla eşleşecek şekilde iyileştirildi. (Idd918, b/206833278)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.compose.foundation:foundation:1.2.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Karmaşık mantık içermeyen mevcut yöntemlerin aşırı yüklenmesi olan yöntemlere NonRestartableComposable eklendi. Bu, çağrılan iç işlevde tekrarlanan tüm parametreler için derleyici tarafından oluşturulan memoization kontrollerini (eşittir) azaltır. (I90490)
  • Android'in setSystemGestureExclusionRects (I46f07) özelliğine kolay erişim için excludeFromSystemGesture değiştiricileri eklendi.

Hata Düzeltmeleri

  • Metin seçimi büyütme davranışları, platform büyütme aracıyla eşleşecek şekilde iyileştirildi. (Idd918, b/206833278)
  • LazyColumn, LazyRow, Modifier.verticalScroll ve Modifier.scrollable kullanan diğer kapsayıcılar artık fare tekerleğiyle kaydırmayı destekliyor. (I2b5e1, b/198214718)

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.foundation:foundation:1.2.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha01 yayınlandı. 1.2.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Kullanıcıların, dokunma hareketleri veya erişilebilirlik işlemleri aracılığıyla kullanıcı tarafından başlatılan kaydırmayı geçici olarak ya da kalıcı olarak devre dışı bırakmasına olanak tanımak için userScrollEnabled parametresi LazyColumn, LazyRow ve LazyVerticalGrid'e eklendi. Durumdaki yöntemler aracılığıyla programatik olarak kaydırmaya izin verilmeye devam edilecek. (I7eae9, b/201150093)
  • Büyüteç değiştiriciye onSizeChanged geri çağırma işlevi eklendi. (I6879f)
  • Büyüteç widget'ı artık SelectionContainer içinde seçim tutamaçları sürüklenirken gösteriliyor. (I30b38, b/139320979)

Hata Düzeltmeleri

  • TextField İmleç tutma yerinin, görünüm dışına kaydırıldığında gizlenmemesi sorunu düzeltildi. (I14552, b/208883748)

Bağımlılık Güncellemeleri (Dependency Updates)

  • Artık Kotlin 1.6.10 sürümüne bağlıdır.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

androidx.compose.foundation:foundation:1.1.1 ve androidx.compose.foundation:foundation-layout:1.1.1 yayınlandı. 1.1.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList'da NullPointerException ile ilgili sorun düzeltildi (aosp/1947059, b/206677462)
  • Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
  • LazyVerticalGrid'da sağdan sola dil desteğiyle ilgili sorun düzeltildi (aosp/1931080, b/207510535)

Sürüm 1.1.0

9 Şubat 2022

androidx.compose.foundation:foundation:1.1.0 ve androidx.compose.foundation:foundation-layout:1.1.0 yayınlandı. 1.1.0 sürümü şu commit'leri içerir.

1.0.0 sürümünden beri yapılan önemli değişiklikler

  • Android 12'deki Aşırı kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
  • Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerine uyacak şekilde düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğmenin dokunma hedefi minimum 48x48 dp boyutuna genişletilir. Bu, Compose Material'ı Materyal Tasarım Bileşenleri'nin davranışıyla aynı hale getirerek Görünümler ve Compose'u karıştırdığınızda tutarlı bir davranış sağlar. Bu değişiklik, Compose Material bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda dokunma hedefi erişilebilirliği için minimum şartların karşılanmasını da sağlar.
  • Gezinme sütunu için kararlı destek
  • Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir.
  • Kotlin'in yeni sürümleri için destek

Sürüm 1.1.0-rc03

26 Ocak 2022

androidx.compose.foundation:foundation:1.1.0-rc03 ve androidx.compose.foundation:foundation-layout:1.1.0-rc03 yayınlandı. 1.1.0-rc03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Compose Material 1.1.0-rc03'ü destekleyecek şekilde güncellendi

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.compose.foundation:foundation:1.1.0-rc01 ve androidx.compose.foundation:foundation-layout:1.1.0-rc01 yayınlandı. 1.1.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Artık LazyListState.scrollToItem() ve LazyListState.animateScrollToItem() işlevlerine negatif kaydırma uzaklıkları iletilebilir. (Iceb90, b/184252837)
  • Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan hata düzeltildi (I7cbfb).

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.foundation:foundation:1.1.0-beta04 ve androidx.compose.foundation:foundation-layout:1.1.0-beta04 yayınlandı. 1.1.0-beta04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi.

API Değişiklikleri

  • androidx.core.view(I7078a, b/204917439) içinde boş değerlere izin verme özelliği temizlendi.
  • PointerInputchange'in bir bütün olarak tüketilmesine veya tüketilip tüketilmediğinin kontrol edilmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
  • İmleci veya seçim tutamaçlarını metin alanlarının içine sürüklerken büyüteç widget'ı gösterilir. (I5391e, b/203781358)

Hata Düzeltmeleri

  • IME görünürlüğü değiştiğinde metin tutamaçlarının hareket etmemesi sorunu düzeltildi. (I25f2e)

Sürüm 1.1.0-beta03

17 Kasım 2021

androidx.compose.foundation:foundation:1.1.0-beta03 ve androidx.compose.foundation:foundation-layout:1.1.0-beta03 yayınlandı. 1.1.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • LazyVerticalGrid'e yatay aralıklar için destek eklendi. (I7e2fa, b/176758183)
  • Lazy listelerdeki öğe konumlarını animasyonlu hâle getirme deneysel özelliği eklendi. LazyItemScope içinde Modifier.animateItemPlacement() adlı yeni bir değiştirici kullanıma sunuldu. Kullanım örneği:

      var list by remember { mutableStateOf(listOf("A", "B", "C")) }
      LazyColumn {
          item {
              Button(onClick = { list = list.shuffled() }) {
                  Text("Shuffle")
              }
          }
          items(list, key = { it }) {
              Text("Item $it", Modifier.animateItemPlacement())
          }
      }
    
    • LazyListScope.item veya LazyListScope.items aracılığıyla bir anahtar sağladığınızda bu değiştirici, öğelerin yeniden sıralanmasıyla ilgili animasyonları etkinleştirir. Öğelerin yeniden sıralanması dışında, düzenleme veya hizalama değişiklikleri gibi etkinliklerden kaynaklanan diğer tüm konum değişiklikleri de animasyonlu olur. (I59e7b, b/150812265)

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.compose.foundation:foundation:1.1.0-beta02 ve androidx.compose.foundation:foundation-layout:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Artık dalgalanmalar ve diğer göstergeler, her zaman bir kesinti etkinliği için gecikmek yerine yalnızca bir Modifier.scrollable() kapsayıcısının içindeyse gecikecek. (Ibefe0, b/203141462)
  • Öğeleri görüntülemek için kaydırma yapmaları amacıyla ebeveynlere istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459).

Harici Katkı (External Contribution)

  • Modifier.pointerHoverIcon tarihinde eklendi (I95f01)

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.foundation:foundation:1.1.0-beta01 ve androidx.compose.foundation:foundation-layout:1.1.0-beta01 yayınlandı. 1.1.0-beta01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Öğeleri görüntülemek için kaydırma yapmaları amacıyla ebeveynlere istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459).

Sürüm 1.1.0-alpha06

13 Ekim 2021

androidx.compose.foundation:foundation:1.1.0-alpha06 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha06 yayınlandı. Version 1.1.0-alpha06 contains these commits.

API Değişiklikleri

  • Daha verimli bir şekilde çalışmak için Layout'a alt öğesi olmayan bir aşırı yükleme eklendi (Ib0d9a).
  • SemanticsNodeInteraction.performSemanticsAction artık işlevin çağrıldığı SemanticsNodeInteraction değerini döndürüyor. (I9e5db)
  • Kaydırılabilir bir kapsayıcıyı, verilen eşleştirici tarafından eşleştirilen içeriğe kaydıran performScrollToNode(matcher: SemanticsMatcher) işlevi eklendi. (Ic1cb8)

Sürüm 1.1.0-alpha05

29 Eylül 2021

androidx.compose.foundation:foundation:1.1.0-alpha05 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha05 yayınlandı. 1.1.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • Kaydırma açısından kaydırılabilir öğeler (hem geç hem de geç olmayan) için erişilebilirlik desteği düzeltildi (I6cdb0).

Sürüm 1.1.0-alpha04

15 Eylül 2021

androidx.compose.foundation:foundation:1.1.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha04 yayınlandı. 1.1.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • performTouchInput ve TouchInjectionScope ile değiştirilen performGesture ve GestureScope kullanımdan kaldırıldı. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için minimum dokunma hedefi boyutunu içeren touchBoundsInRoot, SemanticsNode'a eklendi. (I2e14b, b/197751214)

Hata Düzeltmeleri

Sürüm 1.1.0-alpha03

1 Eylül 2021

androidx.compose.foundation:foundation:1.1.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha03 yayınlandı. 1.1.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Compose 1.1.0-alpha03, Kotlin 1.5.30'e bağlı olacak şekilde güncellendi. (I74545)

API Değişiklikleri

  • Kaydırma için parıltı efekti eklendi. Aşırı kaydırma görsel efektinin yapılandırılmasına olanak tanıyan yeni deneysel OverScrollConfiguration API'si eklendi. Kaydırma sonu efektini devre dışı bırakmak için null değerini girin. (I0c304, b/171682480)
  • AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() işlevlerine sahip (I507f0, b/179239764, b/182397793)
  • Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)
  • Erişilebilirliği sağlamak için anlamsal yapıda ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.foundation:foundation:1.1.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha02 yayınlandı. 1.1.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Modifier.size ve requiredSize için DpSize sürümleri eklendi (I3fc7e, b/194219828)

Sürüm 1.1.0-alpha01

4 Ağustos 2021

androidx.compose.foundation:foundation:1.1.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Kaynak ve hedef dikdörtgenleri kullanan DrawScope#drawImage yöntemi, isteğe bağlı bir FilterQuality parametresini kullanacak şekilde güncellendi. Bu, piksel tabanlı sanat için ölçeklendirildiğinde pikselli olması amaçlanan piksel sanat için kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)
  • TextField artık geri düğmesine basıldığında seçimi temizliyor. Bu, Android EditText davranışıyla eşleşiyor. (I3ca16, b/174173645)
  • İmleç tutma yeri ekleyin. (I07a82, b/173016579)

Hata Düzeltmeleri

  • Lazy listeler ve normal kaydırma bileşenleri için semantik işlemler aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)

Harici Katkı (External Contribution)

  • LazyVerticalGrid artık hem yatay hem de dikey düzenleme parametrelerini kabul ediyor. (If9c92)

Sürüm 1.0

Sürüm 1.0.5

3 Kasım 2021

androidx.compose.foundation:foundation:1.0.5 ve androidx.compose.foundation:foundation-layout:1.0.5 yayınlandı. 1.0.5 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Türetilmiş durum örneklerinin izlenmesi sırasında yaşanan kilitlenme sorunu düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

androidx.compose.foundation:foundation:1.0.4 ve androidx.compose.foundation:foundation-layout:1.0.4 yayınlandı. 1.0.4 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

  • Kotlin 1.5.31 sürümüne bağımlı olacak şekilde güncellendi

Sürüm 1.0.3

29 Eylül 2021

androidx.compose.foundation:foundation:1.0.3 ve androidx.compose.foundation:foundation-layout:1.0.3 yayınlandı. 1.0.3 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

  • Kotlin 1.5.30 sürümüne bağımlı olacak şekilde güncellendi

Sürüm 1.0.2

1 Eylül 2021

androidx.compose.foundation:foundation:1.0.2 ve androidx.compose.foundation:foundation-layout:1.0.2 yayınlandı. 1.0.2 sürümü şu commit'leri içerir.

Compose 1.0.2 sürümünü destekleyecek şekilde güncellendi. Compose 1.0.2, Kotlin 1.5.21 ile uyumluluğunu sürdürüyor.

Sürüm 1.0.1

4 Ağustos 2021

androidx.compose.foundation:foundation:1.0.1 ve androidx.compose.foundation:foundation-layout:1.0.1 yayınlandı. 1.0.1 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

  • Kotlin 1.5.21 sürümüne bağlı olacak şekilde güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.compose.foundation:foundation:1.0.0 ve androidx.compose.foundation:foundation-layout:1.0.0 yayınlandı. 1.0.0 sürümü şu commit'leri içerir.

1.0.0 sürümünün temel özellikleri

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Release bloguna göz atın.

Bilinen Sorunlar

  • Android Studio Bumblebee Canary 4 veya AGP 7.1.0-alpha04/7.1.0-alpha05 kullanıyorsanız aşağıdaki kilitlenmeyle karşılaşabilirsiniz:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Bu sorunu düzeltmek için build.gradle dosyanızda minSdkVersion'ı geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin 7.1 sonraki sürümünde düzeltilecektir. (b/194289155)

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.foundation:foundation:1.0.0-rc02 ve androidx.compose.foundation:foundation-layout:1.0.0-rc02 yayınlandı. 1.0.0-rc02 sürümü şu commit'leri içerir.

  • Sabit boyutlarla tanımlanan yollarla ilgili sorunları gidermek için genel şekillerin kenarlık oluşturma işlemi güncellendi. (aosp/1748871, b/191817116)

Sürüm 1.0.0-rc01

1 Temmuz 2021

androidx.compose.foundation:foundation:1.0.0-rc01 ve androidx.compose.foundation:foundation-layout:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Canvas artık erişilebilirlik için contentDescription parametresini destekliyor. (Ib547c)

Hata Düzeltmeleri

  • Devre dışı bırakılmış düğme, kart, onay kutuları ve genel olarak Modifier.clickable(enabled=false), tıklamaların üst öğeye gitmesini engeller. (Ic2c3b, b/183908811)

Sürüm 1.0.0-beta09

16 Haziran 2021

androidx.compose.foundation:foundation:1.0.0-beta09 ve androidx.compose.foundation:foundation-layout:1.0.0-beta09 yayınlandı. 1.0.0-beta09 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ManualFrameClock kaldırıldı. Animasyonları kontrol etmeniz gerekiyorsa composeTestRule.mainClock kullanın. (I3c3e8, b/189951065)
  • enum Role ve LiveRegionMode'u özel oluşturucuya (Id1890) sahip satır içi sınıflara dönüştürün.
  • KeyboardCapitalization, satır içi sınıfa dönüştürülür. (Id5a1c)
  • TextOverflow, satır içi sınıfa dönüştürüldü. (I433af)

Hata Düzeltmeleri

  • Artık LazyColumn/Row öğeleri için benzersiz anahtarları belirttiğinizde kaydırma konumu anahtara göre korunacak. Bu da mevcut görünür öğeden önce öğe ekleyip kaldırdığınızda, belirli bir anahtara sahip öğenin ilk görünür öğe olarak kalacağı anlamına geliyor. (Id263f, b/184257857)
  • Şimdilik temel sabitler @ExperimentalComposeUiApi'dir. Kod tüketenler, sabitlemeden önce özel sabitler bildirebilir. (Ia5d48)
  • AndroidComposeTestRule'a, test çerçeveleri tarafından bekleme veya sessizliğe ulaşmak için alternatif bir mekanizma yüklemek üzere kullanılabilecek IdlingStrategy eklendi. Kendi stratejinizi yüklemek için testiniz başlamadan önce AndroidComposeTestRule.setIdlingStrategyFactory() kullanın. (I608fa)

Eklenen profil kuralları

Bu sürüm, aşağıdaki Compose modüllerine profil kuralları ekler (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Profil kuralları nedir?

  • Bir kitaplığın profil kuralları, src/main veya eşdeğer dizinde bulunan bir metin dosyasında baseline-prof.txt belirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşecek bir kalıptır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

  • Yöntem kuralı aşağıdaki kalıba sahip olur:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralı ise aşağıdaki kalıba sahip olur:

    <CLASS_DESCRIPTOR>
    
  • Burada <FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için kullanılan H, S ve P karakterlerinden bir veya daha fazlasıdır.

  • <CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin, androidx.compose.runtime.SlotTable sınıfının tanımlayıcısı Landroidx/compose/runtime/SlotTable; olur.

  • <METHOD_SIGNATURE>, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin, LayoutNode üzerindeki fun isPlaced(): Boolean yönteminin imzası isPlaced()Z'dir.

  • Bu kalıplar, tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için joker karakterler (**, * ve ?) içerebilir.

Kurallar ne işe yarar?

  • H işaretine sahip bir yöntem, bu yöntemin "popüler" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.

  • S işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve başlangıçta yöntemin derlenmesi ve yorumlanması maliyetini önlemek için önceden derlenmelidir.

  • P işaretine sahip bir yöntem, başlatma işleminden sonra çağrılan bir yöntem olduğunu gösterir.

  • Bu dosyada bulunan bir sınıf, başlatma sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığında önceden ayrılması gerektiğini gösterir.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıtları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özel kompakt bir ikili ART profili oluşturmak için kullanılır. ART, uygulamanın performansını (özellikle ilk çalıştırma) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek üzere uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bunun, hata ayıklanabilir uygulamaları etkilemeyeceğini unutmayın.

Sürüm 1.0.0-beta08

2 Haziran 2021

androidx.compose.foundation:foundation:1.0.0-beta08 ve androidx.compose.foundation:foundation-layout:1.0.0-beta08 yayınlandı. 1.0.0-beta08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • NestedScrollSource enum'unun yerini satır içi sınıf aldı. (Ie321b, b/187055290)
  • Yeni enum değerleri eklendiğinde kapsamlı when ifadeleriyle ilgili sorunları önlemek için enum kullanımları satır içi sınıflara yeniden düzenlendi. (I2b5eb)
  • Kaydırma / sürükleme sırasında dalgalanma gösterilmesini önlemek için tıklanabilir / açılıp kapatılabilir öğelere dokunma zaman aşımı ekler (Ia2704, b/168524931).
  • ContentDescription ve Text anlamsal yapı özellikleri artık tek değer değil, liste olarak kullanılıyor. Bu sayede, birleştirme işlemi yerine olduğu gibi birleştirme yapılabilir. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850).
  • Modifier.focusModifier() desteği sonlandırıldı ve Modifier.focusTarget() (I6c860) ile değiştirildi.
  • KeyboardType enum, satır içi bir sınıfla değiştirildi. (I73045, b/187055290)
  • FocusState enum'ı FocusState arayüzüyle (Iccc1a, b/187055290) değiştirildi.
  • ImeAction enum'unun yerini satır içi sınıf aldı. (I18be5, b/187055290)
  • AnnotatedString.withAnnotation işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak kullanılıyor. (I0cd0a)
    • TextUnitType ile TextUnit oluşturucusu artık ExperimentalComposeApi yerine ExperimentalTextApi'dir.
  • PaddingValues artık @Immutable yerine @Stable (I88c50)

Hata Düzeltmeleri

  • Boş olmayan metinde boş alanı uzun basmayla ilgili kilitlenme sorunları düzeltildi. (I33ab5, b/187437299)
  • Tümünü Seç'ten sonra araç çubuğunu gösterme (I495d9, b/185919613)
  • Kaydırılabilir kapsayıcıların, alt öğelerini çapraz eksende kırpması sorunu düzeltildi. Card öğeleri içeren bir LazyRow'unuz varsa kolayca yeniden üretilebiliyordu. Artık gölge kırpılmayacak. (Icb635, b/186318448)
  • Modifier.combinedClickable kullanılırken bazen dalgalanmaların / diğer göstergelerin uzun tıklamada takılmasına neden olan sorun düzeltildi (I2298c, b/186223077).
  • Artık detectDragGesures, detectVerticalGestures ve detectHorizontalGestures konum değişikliğini otomatik olarak kullanacak. onDrag geri çağırma işlevlerinde change.consumePositionChange'i çağırmanıza gerek kalmayacak (I42fc4, b/185096350, b/187320697).
  • Modifier.onGloballyPositioned(), tüm değiştiriciler uygulandıktan sonraki düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını raporlayacak şekilde değiştirildi. Bu nedenle, artık değiştiricilerin sırası hangi koordinatların raporlanacağını etkiliyor. (Ieb67d, b/177926591)

Sürüm 1.0.0-beta07

18 Mayıs 2021

androidx.compose.foundation:foundation:1.0.0-beta07 ve androidx.compose.foundation:foundation-layout:1.0.0-beta07 yayınlandı. 1.0.0-beta07 sürümü şu commit'leri içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • LazyColumn/Row, artık daha önce görünür olan 2 öğeyi, kaydırılarak görünürlükten çıkmış olsalar bile etkin (kaldırılmamış) tutar. Bu sayede, yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt bileşimleri yeniden kullanmasına olanak tanınır. Bu da kaydırma performansını artırır. (Ie5555)
  • paintBackground'u kaldırın. (I38660)
  • DrawScope kullanarak seçim arka planı çizin. (I73c61, b/186674472)
  • Ağırlıklı alt öğeleri yerleştirmek için spacedBy düzenlemelerini kullanan satır/sütunu etkileyen beta06 regresyonu düzeltildi. (Ifaf8c, b/187326588)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.foundation:foundation:1.0.0-beta06 ve androidx.compose.foundation:foundation-layout:1.0.0-beta06 yayınlandı. 1.0.0-beta06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
  • Koleksiyonu ve öğelerini erişilebilirlik hizmetleri için işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017).
  • Dizinlenmiş öğeler içeren bir listede belirli bir dizine sahip öğeye gitmek için SemanticsActions.ScrollToIndex, anahtarlı öğeler içeren bir listedeki öğenin dizinini almak için SemanticsProperties.IndexForKey eklendi. Her iki işlem de LazyList tarafından uygulanır.
    • Bir listeyi belirli bir dizine kaydıran SemanticsNodeInteraction.performScrollToIndex ve bir listeyi belirli bir anahtara sahip öğeye kaydıran SemanticsNodeInteraction.performScrollToKey işlevi eklendi. (I4fe63, b/178483889, b/161584524)
  • AnnotatedString'in TextFieldValue.Saver'a kaydedilmesi desteği. AnnotatedString.Builder'a addTtsAnnotation ve withAnnotation yardımcı işlevleri eklendi (I8cbdc, b/178446304).
  • 0.dp varsayılan parametre değerleri PaddingValues(horizontal, vertical)'ye eklendi (I05571, b/181336792)

Hata Düzeltmeleri

  • weight(fill = false) öğesi içeren satır ve sütun alt öğeleri artık üst öğenin kullanılabilir ana eksen alanının tamamını doldurmasına neden olmuyor. (Ied94d, b/186012444, b/184355105)

Sürüm 1.0.0-beta05

21 Nisan 2021

androidx.compose.foundation:foundation:1.0.0-beta05 ve androidx.compose.foundation:foundation-layout:1.0.0-beta05 yayınlandı. 1.0.0-beta05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • FlingBehavior arayüzü artık @Stable olarak işaretleniyor. Tüm uygulamalar @Stable sözleşmesine uygun olmalıdır. (I93354, b/184830577)

Hata Düzeltmeleri

  • ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown erişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir alanın sonuna kadar kaydırmak yerine, artık belirtilen yönde bir ekran kaydırılacak. (Ieccb0)
  • ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumlu (I6f9de, b/184718994)

Sürüm 1.0.0-beta04

7 Nisan 2021

androidx.compose.foundation:foundation:1.0.0-beta04 ve androidx.compose.foundation:foundation-layout:1.0.0-beta04 yayınlandı. 1.0.0-beta04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • SoftwareKeyboardController'daki hideSoftwareKeyboard ve showSoftwareKeyboard'ı sırasıyla hide() ve show() olarak yeniden adlandırın.
    • LocalSoftwareKeyboardController için tam CompositionLocal arayüzünü sağlayarak ayarlanmasına izin verin (özellikle testlerde kullanışlıdır) (I579a6)
  • TextOverflow.Visible kullanıma sunuldu. (Ic8f89)
  • RowScope, ColumnScope, BoxScope, BoxWithConstraintsScope uygulamalarının herkese açık örnekleri kaldırıldı. (I4e83e, b/181869067)

Hata Düzeltmeleri

  • Kenarlarda bulunan LazyColumn/LazyRow öğelerinin hızlı kaydırma işleminden sonra yanlış konumlandırılması sorunu düzeltildi (Ie4d13, b/183877420).
  • Bu değişiklikten önce, yerel composable işlevler parametrelerine göre atlanabiliyordu. Bu değişiklikten sonra hiçbir yerel composable işlevi atlanmayacak. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri yakalaması yaygın ve beklenen bir durum olduğundan ve bunların atlanması yaygın bir hata kaynağı olduğundan yapılmıştır.

    Özetlemek gerekirse şu örneği inceleyin:

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    Bu değişiklikten önce, ShowCount composable işlevi, count parametresi güncellendikten sonra bile her zaman atlanıyordu. Bu durum artık geçerli değil. (I5648a)

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.foundation:foundation:1.0.0-beta03 ve androidx.compose.foundation:foundation-layout:1.0.0-beta03 yayınlandı. 1.0.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • DefaultMonotonicFrameClock kullanımdan kaldırıldı. withFrameNanos veya Recomposer.runRecomposeAndApplyChanges ile MonotonicFrameClock olmadan yapılan aramalar artık IllegalStateException hatası verecek. (I4eb0d)

Hata Düzeltmeleri

  • Hız 0 olduğunda da artık FlingBehavior.performFling() çağrılıyor (I0b6e5, b/181237123)

Sürüm 1.0.0-beta02

10 Mart 2021

androidx.compose.foundation:foundation:1.0.0-beta02 ve androidx.compose.foundation:foundation-layout:1.0.0-beta02 yayınlandı. 1.0.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • LazyColumn ölçüm mantığına birden fazla küçük optimizasyon eklendi (Ic6889)
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I5951e, b/168778053)
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I84472, b/168778053)

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımına kısıtlamalar getirme (I6aa29, b/174531520)

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.foundation:foundation:1.0.0-beta01 ve androidx.compose.foundation:foundation-layout:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü şu commit'leri içerir.

Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.

API Değişiklikleri

  • onStart geri çağırması detectDragGestures'ya eklendi (I67269, b/179995594)
  • İçerik boyutlandırma değiştiricileri artık deneysel değildir. (I15744)
  • Kaldırılan dp onayları (I798d2)
  • Yakında yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma işlevi tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
  • MeasureBlocks, MeasurePolicy olarak yeniden adlandırıldı ve eğlenceli bir arayüze dönüştürüldü. Düzen API'leri, MeasurePolicy'yi kullanacak şekilde güncellendi / basitleştirildi. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi.
    • Arayüzler, etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
    • interactionState = remember { InteractionState() } değerini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } kullanın.
    • Interaction.Pressed in interactionState yerine InteractionSource.collectIsPressedAsState() gibi InteractionSource'taki uzantı işlevlerini kullanmanız gerekir.
    • Karmaşık kullanım alanlarında, Etkileşimler akışını gözlemlemek için InteractionSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için InteractionSource dokümanlarına ve örneklerine bakın.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için özellik yerine işlev kullanın (I580ed, b/169874631, b/175142755).
  • CoreTextField gibi düşük seviyeli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
  • Placeable artık, alt düzenin ölçtüğü boyutu temsil eden measuredSize'ı kullanıma sunuyor. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
  • Sekme veya radyo düğmesi koleksiyonunun erişilebilirlik amacıyla işaretlenmesine olanak tanıyan selectionGroup değiştiricisini ekleyin (Ie5c29).
  • LazyListState.animateScrollToItem işlevini ekleyin

    Bu yöntem, listedeki belirli bir öğeye sorunsuz bir şekilde kaydırır. (I4bfd7)

  • ScrollableState.smoothScrollBy(), animateScrollBy() olarak yeniden adlandırıldı. LazyListState.snapToItemIndex(), scrollToItem() olarak yeniden adlandırıldı. ScrollState.smoothScrollTo(), animateScrollTo() olarak yeniden adlandırıldı (I35ded).

  • Modifier.zoomable, Modifier.transformable ile değiştirildi. smoothPanBy ve smoothRotationBy işlev olarak eklendi. (Ifc32b, b/175294473)

  • compositionLocalOf ve staticCompositionLocalOf için defaultFactory artık isteğe bağlı değil, zorunlu.

    Bu değişiklik, varsayılan fabrika sağlanmayan, boş değer atanamayan türlerdeki olası bir tür hatasını giderir. Daha önce bu, boş değer atanamayan bir tür için boş referans sağlıyordu.

    Boş değer atanabilir türler için varsayılan fabrika olarak { null } değerini sağlamayı düşünebilirsiniz.

    Anlamlı bir varsayılan değer sağlanmadığı sürece, null değer atanamayan türlerle yerel değişkenlerin kullanılması önerilmez. Mantıklı bir varsayılan değer yoksa defaultFactory lambda bir istisna oluşturmalıdır. Ancak bir istisna oluşturmak, yerel tüketicilerin, tür sistemi tarafından zorunlu kılınmayan bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)

  • Indication#createIndication(), Indication#rememberUpdatedIndication(InteractionState) olarak değiştirildi ve InteractionState parametresi IndicationInstance#drawIndication()'den kaldırıldı. IndicationInstance yalnızca görsel efektleri çizmekten sorumludur ve InteractionState değişikliklerine yanıt olarak animasyon başlatmaktan / durum yazmaktan sorumlu değildir. Bu animasyonlar ve durum yazma işlemleri bunun yerine rememberUpdatedIndication() içinde gerçekleşmelidir. Modifier.indication içindeki indication parametresi de zorunlu parametre olarak değiştirildi. (Ic1764, b/152525426)

  • Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)

  • runBlockingWithManualClock kaldırıldı (I15cdc, b/179664814)

  • Modifier.verticalScroll()/horizontalScroll() içindeki kaydırma konumu artık Ints ile temsil ediliyor (I81298).

  • smoothScrollBy ve scrollBy yöntemlerinin paketleri androidx.compose.foundation.gestures.* olarak değiştirildi (I3f7c1, b/175294473)

  • FlingConfig'in adı FlingBehavior olarak değiştirildi. Artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)

  • Boyut değiştiricilerin adı değiştirildi. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)

  • defaultMinSizeConstraints, defaultMinSize olarak yeniden adlandırıldı. (I4eaae)

  • Modifier.tapGestureFilter kaldırıldı. Bunun yerine Modifier.pointerInput { detectTapGestures(...) } kullanın. (I266ed, b/175294473)

  • Kısmi tüketim, işaretçi giriş sisteminden kaldırıldı. Kısmi tüketimi koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)

  • Yön, temel pakete taşındı. VelocityTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)

  • AnimationClockObservable ve alt sınıfları kaldırıldı. AnimatedFloat kaldırıldı. (Icde52, b/177457083)

  • drawerState.open() ve drawerState.close() artık işlevleri askıya alıyor. Bunları çağırmak için kompozisyonun kapsamını almak üzere rememberCoroutineScope() işlevini kullanın (I16f60, b/175294473).

  • Providers, CompositionLocalProvider olarak yeniden adlandırıldı.

    • Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı.
    • ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
    • ComposableLambdaN, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri yok.
    • snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
    • Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değildir.
    • isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
    • Çeşitli üst düzey API'ler farklı dosyalara taşındı ve yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu değişiklik, ikili uyumluluğu bozacak ancak kaynak uyumluluğunu bozmayacak. Bu nedenle, çoğu kullanıcı için sorun teşkil etmeyecek.
    • (I99b7d, b/177245490)
  • Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanılıyor (I4f5a5, b/174485541, b/175294473)

  • Modifier.draggable artık basit bir lambda yerine DraggableState'i kabul ediyor. rememberDraggableState { delta -> } ile durum oluşturarak öncekiyle aynı davranışı elde edebilirsiniz (Ica70f, b/175294473).

  • requiredWidth(IntrinsicSize) ve requiredHeight(IntrinsicSize) değiştiricileri, gerekli boyutlandırma için doğal boyutlara eklendi. (I0a6b4)

  • Kullanımdan kaldırılan emptyContent() kaldırıldı. Bunun yerine {} politikasını kullanın. (Idb33f, b/179432510)

  • Daha önce desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932).

Hata Düzeltmeleri

  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController kompozisyon yereli API'si eklendi. (I658b6, b/168778053)

Sürüm 1.0.0-alpha12

10 Şubat 2021

androidx.compose.foundation:foundation:1.0.0-alpha12 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha12 yayınlandı. 1.0.0-alpha12 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Modifier.pointerInput artık işaretçi girişi algılama eş yordamının yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek üzere remember anahtarları gerektiriyor. (I849cd)
  • Test güncellemesi: hasText(), metin alanındaki hem giriş hem de etiket/ipucu/yer tutucu metinleri kontrol edecek (Iab803)
  • PaddingValues.Absolute eklendi ve PaddingValues'u kabul eden API'lerde kullanılabilir. (Ia5f30)
  • onImeActionPerformed kullanımdan kaldırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
  • Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
  • Alt dizeyi artık bağımsız değişken olarak kullanan daha iyi alt dize testi API'leri (Icbe78)
  • Sonsuz animasyonlarda uygulanacak bir InfiniteAnimationPolicy coroutine bağlamı öğesi eklendi. ComposeTestRule ile testler çalıştırılmadığı sürece varsayılan olarak politika yüklenmez. (I50ec4, b/151940543)
  • Animatable.snapTo ve Animatable.stop artık askıya alma işlevleridir (If4288).
  • ComponentActivity.setContent, androidx.activity:activity-compose modülünde androidx.activity.compose.setContent'e taşındı. (Icf416)
  • Nadiren kullanıldıkları için bazı sınıflardan destructuring ve copy() yöntemleri kaldırıldı. (I26702, b/178659281)
  • LazyColumn/LazyRow için özel anahtar desteği eklendi. Bu sayede, öğelerin yeniden sıralanmasını daha akıllıca yönetebiliriz. Bu nedenle, remember {} bloklarında depoladığınız durum, öğeleri yeniden sıraladığınızda veya öğeyi ortadan kaldırdığınızda öğeyle birlikte hareket eder.

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • Indication#createInstance, @Composable olacak şekilde değiştirildi ve LocalIndication, () -> Indication değil, bir Indication içerecek şekilde değiştirildi. (I5eeea, b/157150564)

  • Constraints.enforce, Constraints.constrain ile değiştirildi. (I8b8ea)

  • loadFontResource desteği sonlandırıldı. Bunun yerine fontResource'u kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)

  • Performans nedeniyle, ScrollAxisRange semantiği artık doğrudan Float değerleri yerine Float döndüren lambda'ları alıyor. (If4a35, b/178657186)

  • Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantiği ve semantiği kontrol etmek için ilgili test yöntemleri eklendi (I8e07a).

  • Modifier.clickable artık çift tıklama ve uzun tıklama desteğine sahip değil. Bu işlevi kullanmak için Modifier.combinedClickable'ı kullanın. (Iafad1)

  • toIntPx() işlevinin adı roundToPx() olarak değiştirildi. (I9b7e4, b/173502290)

  • IntBounds, IntRect olarak yeniden adlandırıldı ve API geliştirildi. (I1f6ff)

  • Modifier.dragGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.pointerInput { detectDragGestures (...)} kullanın. Alternatif olarak, tek eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473)

  • Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşmesi için Ambients yeniden adlandırıldı. Ambients, AmbientFoo olarak adlandırılırdı. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)

  • Seçim, temel katmana taşındı. (I7892b)

  • Daha önce state { 0 } composable'ı kaldırıp remember { mutableStateOf(0) } gibi kullanımları desteklediğimiz gibi, savedInstanceState { 0 } composable'ı da kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmalısınız. Bu, MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa otomatik olarak kaydedip geri yükler. Daha önce özel bir kaydedici nesne iletiyorsanız artık stateSaver parametresine sahip yeni bir rememberSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şöyle görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)

  • Erişilebilirlik için şifre semantiği eklendi (I231ce)

  • Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05).

  • Animasyondaki oynatma süresi artık nanosaniye cinsinden (If776a)

  • @ComposableContract, üç daha spesifik ek açıklama lehine kullanımdan kaldırıldı.

    @ComposableContract(restartable = false), @NonRestartableComposable adlı kullanıcının güvenilir kişisi oldu. @ComposableContract(readonly = true), @ReadOnlyComposable adlı kullanıcının güvenilir kişisi oldu. @ComposableContract(preventCapture = true), @DisallowComposableCalls adlı kullanıcının güvenilir kişisi oldu. @ComposableContract(tracked = true) kaldırıldı. (I60a9d)

  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programlarının artık olumlu bir performans etkisi veya değeri olmadığından desteği sonlandırıldı (I0484d).

  • Yeniden oluşturucular artık kapatılabilir. Kapalı yeniden oluşturucular, alt coroutine'ler tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatma ile karşıtlık oluşturması için iptal olarak yeniden adlandırıldı. (Ib6d76)

  • LazyVerticalGrid ile ilgili API'ler deneysel olarak işaretlendi (Ia53e3, b/178519862)

  • rememberSavedInstanceState(), rememberSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)

  • RestorableStateHolder, SaveableStateHolder olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. Inner method RestorableStateProvider, SaveableStateProvider olarak yeniden adlandırıldı. Genel tür kaldırıldı. Artık anahtar olarak yalnızca Any değerini iletebilirsiniz. Deneysel ek açıklama artık gerekli değildir. (I0902e, b/174598702)

  • Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate'ten androidx.compose.runtime.saveable'a taşındı (I77fe6).

  • Artefact androidx:compose:runtime:runtime-saved-instance-state, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac).

  • ui paketinde desteği uzun süredir sonlandırılmış birçok API silindi. (I2f2dc)

  • compose:runtime-dispatch yapısı artık kullanımdan kaldırıldı. MonotonicFrameClock artık compose:runtime içinde, AndroidUiDispatcher ise compose:ui içinde bulunabilir. (Ib5c36)

  • RounderCornerShape, CutCornerShape ve CornerBasedShape üzerindeki parametreler, şeklin rtl yönünde otomatik olarak yansıtılmasını desteklemek için soldan/sağdan başlayarak/biterek olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlarda AbsoluteRounderCornerShape ve AbsoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)

  • canDrag, Modifier.scrollable öğesinden kaldırıldı. (Id66e7, b/175294473)

  • Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüzde artık tür parametresi de kullanılmıyor.

    Bu, kaynak kodu uyumluluğunu etkilememesi gereken ancak ikili uyumluluğu bozan bir dahili değişikliktir. (I3b922, b/169406779)

  • Modifier.scaleGestureFilter kaldırıldı. Bunun yerine Modifier.zoomable'ı kullanın. Alternatif olarak Modifier.pointerInput { detectMultitouchGestures { ... }} (Id5da1, b/175294473) kullanın.

  • AnimatedValue/Float desteği sonlandırıldı. Lütfen bunun yerine Animatable'ı kullanın. (I71345, b/177457083)

    • CoreText ve CoreTextField, genel API'den kaldırıldı
    • Desteği sonlandırılan SelectionContainer aşırı yüklemesi kaldırıldı (I99c19)
  • Kullanımdan kaldırılan, kaydırmayı durdurmayan işlevler kaldırıldı. Son sürümdeki değişikliklere devam edilerek, kaydırmayı durdurmayan işlevler tamamen kaldırıldı. Lütfen aynı ada sahip işlevleri askıya alma işlevlerine dönüştürün. Coroutine kapsamı, rememberCoroutineScope() ile elde edilebilir. (I3d39c, b/178169563)

  • androidx.compose.foundation.layout.ConstraintLayout, androidx.constraintlayout.compose.ConstraintLayout lehine kullanımdan kaldırıldı. androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01 için bağımlılık eklemeniz gerekir. (I87adc)

  • tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.clickable veya Modifier.pointerInput ile detectTapGestures işlevini kullanın. (I6baf9, b/175294473)

  • Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak, pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, pencere kapsamlı ve geç oluşturulan Recomposer'ları kullanıyor. Ana makinenin yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon işaretleri duraklatılır. (I38e11)

  • Recomposer.runningRecomposers artık işlemdeki devam eden kompozisyon durumunu gözlemlemek için salt okunur RecomposerInfo'nun genel bir StateFlow'unu sunuyor. Artık desteği sonlandırılan Recomposer.current() yerine bu API'yi tercih edin. (If8ebe)

Sürüm 1.0.0-alpha11

28 Ocak 2021

androidx.compose.foundation:foundation:1.0.0-alpha11 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha11 yayınlandı. 1.0.0-alpha11 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Askıya alınmayan scrollBy işlevinin desteğini sonlandırma, askıya alınmayan scrollTo işlevini kaldırma

    Artık kaydırmayı kontrol etmek ve kaydırmanın tamamlanmasını beklemek için askıya alma işlevlerini kullanmanızı öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alma dışı sürümlerinin desteğini sonlandırıyoruz ve/veya bu sürümleri kaldırıyoruz. (Ie9ced)

  • Askıya alınmayan smoothScrollBy işlevinin desteği sonlandırıldı. Artık kaydırmayı kontrol etmek ve kaydırmanın tamamlanmasını beklemek için askıya alma işlevlerini kullanmanızı öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alma içermeyen sürümlerinin desteğini sonlandırıyoruz. (I12880)

  • Resim ve simgeye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c).

  • BasicTextField, "decorationBox" adlı yeni bir parametre aldı. Metin alanına simge, yer tutucu, etiket gibi süslemeler eklemenize ve bu alanın hedef alanını genişletmenize olanak tanır. (I16996)

  • canDrag parametresi, Modifier.draggable'dan kaldırıldı (Ic4bec, b/175294473).

  • FlingConfig'i kabul eden AnimatedFloat.fling kaldırıldı. Lütfen bunun yerine suspend Animatable.animateDecay kullanın. (I4659b, b/177457083)

  • data class şu sınıflardan kaldırıldı:

    • InlineTextContent
    • LocaleList
    • (I605c7)
  • Tıklanabilir, açılıp kapatılabilir ve seçilebilir öğeler artık kompozisyon dışında oluşturulabilir (I0a130, b/172938345, b/175294473)

  • ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturup ölçüp çizebildiğimiz için, kaydırılabilir çok fazla içeriğiniz olduğunda ScrollableColumn kullanmak LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanılmasını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni items(count: Int) fabrika yöntemi. items(items: List) ve itemsIndexed(items: List) artık uzantı işlevleri olduğundan kullanıldıklarında manuel olarak içe aktarılmaları gerekir. Diziler için yeni uzantı aşırı yüklemeleri: items(items: Array) ve itemsIndexed(Array) (I803fc, b/175562574)

  • Kullanımdan kaldırılan AbsoluteArrangement kaldırıldı. (Iffa96, b/177641870)

  • Gelen minimum kısıtlamaların Box'ın içeriğine aktarılıp aktarılmayacağını belirtmek için Box'a propagateMinConstraints parametresi eklendi. Varsayılan değer yanlış (false) değeridir. (I0125b, b/152613457)

Hata Düzeltmeleri

  • onCommit, onDispose ve onActive, SideEffect ve DisposableEffect API'leri lehine desteği sonlandırıldı (If760e).
  • WithConstraints, BoxWithConstraints olarak yeniden düzenlendi ve foundation.layout'a taşındı. (I9420b, b/173387208)
  • Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler

    • Büyük harfle başlayan fabrika işlevleri eklendi
    • İlk harfleri küçük olan önceki fabrika işlevlerinin desteği sonlandırıldı
    • Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürür.
    • Alt sınıfların oluşturucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulabilmelerini sağlayın.
    • Font.asFontFamily işlevinin adı Font.toFontFamily olarak değiştirildi.
    • (I42aa7)
  • ComposeContentTestRule tanıtıldı. Bu, ComposeTestRule öğesini genişletir ve ComposeTestRule öğesinden kaldırılan setContent öğesini tanımlar. createEmptyComposeRule() döndüren ve sizin için bir Etkinlik başlatmayan bir fabrika yöntemi ComposeTestRule eklendi. Testiniz sırasında Etkinliğinizi başlatmak istediğinizde bu özelliği kullanın. Örneğin, ActivityScenario.launch (I9d782, b/174472899) kullanma

  • animateAsState artık animateFooAsState olarak adlandırılıyor. Burada Foo, animasyon uygulanan değişkenin türünü (ör. Float, Dp, Offset vb.) ifade ediyor (Ie7e25).

  • Yoğunluk artık Düzenleme arayüzleri için alıcı kapsamındadır. (I18aad)

  • TextFieldValue, AnnotatedString'i kabul eder. Ancak bu değişiklik yalnızca API'de geçerlidir ve çok stilli metin düzenleme henüz uygulanmamıştır.

    • initial, EditingBuffer oluşturucu parametrelerinden kaldırıldı. (I326d5)
  • invalidate ve compositionReference() işlevlerinin desteği, sırasıyla currentRecomposeScope ve rememberCompositionReference lehine sonlandırıldı. (I583a8)

  • AnnotatedString, kotlin.CharSequence'den genişletilecek şekilde değiştirildi. Bu nedenle, length ve subSequence artık örnek işlevler, uzantı işlevleri ise kaldırıldı. (Iaf429)

  • Süre ve Çalışma Süresi, uzun milisaniye ile değiştirilir. Bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldırır. (Ia33b2, b/175142755, b/177420019)

  • RememberObserver, CompositionLifecycleObserver'ın yerini alır ve CompositionLifecycleObserver artık kullanımdan kaldırılmıştır.

    RememberObserver, değiştirilmiş anlamsal yapıya ve yeniden adlandırılmış yöntemlere sahip CompositionLifecycleObserver yerine kullanılan bir yöntemdir. Yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bu, önerilen uygulama olmaya devam etmektedir. Ancak bir kompozisyonda bir referans birden fazla kez hatırlanırsa onRemembered, yalnızca bir kez çağrılan onEnter yerine her referans için çağrılır. onEnter Nesne, WithConstraints ve Scaffold gibi alt bileşimlerde kullanılıyorsa birden çok kez çağrılıyordu. Bu durum, tek onEnter çağrısı garantisini güvenilmez hale getiriyordu ve RememberObserver için kaldırıldı.

    RememberObserver örneği, remember'ye iletilen geri çağırma işleminden döndürülürse ancak beste durumunda hatırlanmazsa RememberObserveronAbandoned eklenir ve bu nedenle onRemembered hiçbir zaman çağrılmaz. Bu durum, bir istisna nedeniyle kompozisyon tamamlanmadan sonlandırılırsa veya kompozisyon, durum artık geçerli olmadığı ya da başka bir nedenle gerekli olmadığı için atılırsa oluşabilir. Yukarıdaki tek referans önerisini izleyen RememberObserver örneği harici bir kaynağı izliyorsa hem onForgotten hem de onAbandoned, kaynağın artık gerekli olmadığını gösterir. Nesne, onRemembered içinde başlatılan işi veya ayrılan kaynakları izliyorsa onRemembered çağrıldığında onAbandoned çağrılmayacağından yoksayılabilir. (I02c36)

  • TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı.

    • TransformedText artık bir veri sınıfı değil (Ie672a)
  • Aşağıdaki sınıflar artık veri sınıfı değildir:

    • AnnotatedString
    • ParagraphStyle
    • SpanStyle
    • TextStyle
    • FontWeight
    • TextDecoration
    • TextGeometricTransform
    • TextIndex
    • TextLayoutResult
    • TextLayoutInput (Iaff99)
  • Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)

  • Genel koordinat yöntemlerinin desteği sonlandırıldı ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)

  • Lütfen ImeAction.NoAction yerine ImeAction.None kullanın.

    • Lütfen ImeAction.Unspecified yerine ImeAction.Default'u kullanın (Ie1bcc).
  • FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretleniyor. (I2d898, b/177000821)

  • SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, horizontalScrollAxisRange olarak yeniden adlandırıldı. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırıldı. (Id3148)

  • VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4).

  • Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)

  • PointerInputData kaldırıldı ve PointerInputChange, PointerInputData'nın tüm alanlarını içerecek şekilde değiştirildi. PointerInputEvent ve PointerInputEventData, herhangi bir genel API'de kullanılmadığı için dahili hale getirildi. (Ifff97, b/175142755)

  • TextInputService.onStateUpdated, updateState olarak yeniden adlandırıldı (Id4853).

  • displaySize, kullanılmaması gerektiğinden kaldırın. Genellikle en azından onRoot() veya pencere boyutunu kullanmak daha iyidir. (I62db4)

Sürüm 1.0.0-alpha10

13 Ocak 2021

androidx.compose.foundation:foundation:1.0.0-alpha10 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha10 yayınlandı. 1.0.0-alpha10 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ImeOptions ve KeyboardOptions artık veri sınıfı değil (I3c898, b/168684531)
  • VisualTransformation API Değişiklikleri
    • OffsetMap, OffsetMapping olarak yeniden adlandırıldı.
    • OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı.
    • PasswordTransformation artık veri sınıfı değil
    • OffsetMapping kendi dosyasına taşındı
    • (I0bdf3)
  • EditOperations API'deki Değişiklikler
    • EditOperation, EditCommand olarak yeniden adlandırıldı.
    • EditOperation somut uygulamaları için Command soneki eklendi
    • EditCommand'ler artık veri sınıfları değil
    • EditOperation.process işlevinin adı applyTo olarak değiştirildi.
    • InputEventListener, InputEventCallback olarak yeniden adlandırıldı.
    • (I0a366)
  • Bileşen parçaları ve matematiksel işlemler içerecek şekilde Velocity değiştirildi. (Ib0447)
  • Benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olması için @ExperimentalTesting, @ExperimentalTestApi olarak yeniden adlandırıldı.
  • LazyColumn/LazyRow için deneysel stickyHeader yöntemi eklendi (I0a81d).
  • Color.useOrElse() işlevinin adı Color.takeOrElse() olarak değiştirildi (Ifdcf5�)
  • TestUiDispatcher'ın desteği sonlandırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
  • Toggle'ı foundation Strings.kt dosyasına ekleyin (I4a5b7, b/172366489)
  • nativeClass, ui modülüne taşındı ve dahili hale getirildi. equals uygulamalarındaki nativeClass kullanımları, "is MyClass" kullanacak şekilde güncellendi. (I4f734)
  • FlowRow ve FlowColumn'un desteği sonlandırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
  • Modifier.focus() ve Modifier.focusRequester() desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
  • SelectionRegistrar.notifySelectableChange işlevi kullanıma sunuldu. Bu işlev, SelectionManager'a Selectable güncellemelerini bildirir. (I6ff30, b/173215242)
  • fun Dp.isFinite(), val Dp.isFinite (I50e00) olarak değiştirildi
  • Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
  • Belirtilmemiş sabiti olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)

Hata Düzeltmeleri

  • Animasyonları arasında karşılıklı dışlamayı sağlayan yeni coroutine tabanlı API Animatable. Çok boyutlu DecayAnimationSpec'i desteklemek için yeni DecayAnimationSpec (I820f2, b/168014930)
  • Devre dışı bırakılmış ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
  • animate() artık animateAsState() ile değiştirildi. Bu işlev, T yerine State<T> değerini döndürür. Bu sayede, geçersiz kılma kapsamı State değerinin okunduğu yerle sınırlandırılabildiğinden daha iyi performans elde edilir. (Ib179e)
  • Semantics role API'yi ekleyin ve Role'ü tıklanabilir, seçilebilir ve açılıp kapatılabilir SemanticsModifier'a parametre olarak ekleyin. Slider'ın da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden erişilebilir (I87c57, b/173086397).

Sürüm 1.0.0-alpha09

16 Aralık 2020

androidx.compose.foundation:foundation:1.0.0-alpha09 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha09 yayınlandı. 1.0.0-alpha09 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Kaydırılabilir arayüz ekleme

    Bu sayede ScrollState ve LazyListState ortak bir tür olarak değerlendirilebilir ve her iki türde de özel kaydırma uygulanabilir.

    Bu değişiklik, smoothScrollBy işlevini Scrollable üzerinde bir uzantı işlevine de taşır ve bu işlevden yararlanır. (I2153b)

  • LazyVerticalGrid eklendi. (I17267, b/162213211)

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed kullanımdan kaldırıldı. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)

  • İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope, AwaitPointerEventScope olarak, handlePointerInput() ise awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)

  • LazyListState.layoutInfo eklendi. Bu özellik, şu anda görünür olan öğelerin boyut ve ofset listesini gösterir (If8678, b/170472532).

  • Removed ExperimentalPointerInput annotation (Ia7a24)

  • TextField'lar için InteractionState desteği eklendi. (I61d91)

  • LazyColumn/Row için reverseLayout parametresini ekleyin. Bu parametre, true öğelerin alttan üste doğru oluşturulacağı ve LazyListState.firstVisibleItemIndex == 0 ilk öğenin altta yer alacağı anlamına gelir. (I552ae, b/166589935)

  • LazyColumn için verticalArrangement parametresi eklendi. LazyRow için horizontalArrangement parametresi eklendi. Düzenleme, öğeler arasına boşluk eklememize ve minimum boyutu dolduracak kadar öğemiz olmadığında öğelerin düzenini belirtmemize olanak tanır. (Icf79a, b/170394300)

  • detectMultitouchGestures artık birleştirilmiş merkez, kaydırma, yakınlaştırma ve döndürme parametreleriyle tek bir geri çağırma kullanıyor. (Ie6e1c)

  • ContentDrawScope, DrawScope ile birlikte olması için ui-graphics modülüne taşındı. (Iee043, b/173832789)

Hata Düzeltmeleri

  • Ofset değiştiricilerdeki lambda'lar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
  • SlotTable, SlotReader ve SlotWriter, genel API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık oluşturma modülünün içinde yer alıyorlar.

    Bileşen bilgilerini ayıklamak için kullanılan ui-tooling API'nin yerine CompositionData ve CompositionGroup eklendi. Bunlar herkese açık olsa da ui-tooling API'nin yorumladığı ham bilgileri sağladıkları için ui-tooling API dışında kullanılmak üzere tasarlanmamıştır (I31a9c).

  • Çizim ortamının boyutlandırma bilgileri kullanılabilir olduğunda gölgelendirici örneğini geç oluşturmak için ShaderBrush yeniden düzenlendi. Bu, özel DrawModifier uygulamaları kullanmak zorunda kalmadan, kompozisyon sırasında bir composable'ın tam çizim sınırlarını kaplayan gradyanlar tanımlamak için kullanışlıdır.

    Gradient nesnesinde fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)

  • Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)

  • Otomatik Doldurma API'si artık deneysel bir API ve etkinleştirme gerektiriyor (I0a1ec)

  • FocusRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)

  • accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)

  • SelectionRegistrar'da çeşitli yeni işlevler kullanıma sunuldu ve onPositionChange işlevi notifyPositionChange olarak yeniden adlandırıldı. (Ifbaf7)

  • AndroidOwner made internal (Ibcad0, b/170296980)

  • InfiniteRepeatableSpec oluşturmak için yeni infiniteRepeatable işlevi (I668e5)

  • Applier arayüzü, ağaç oluşturma sürecini yukarıdan aşağıya değil aşağıdan yukarıya doğru basitleştirecek şekilde değiştirildi.

    insert() yöntemi, insertTopDown() olarak yeniden adlandırıldı.

    Yeni bir yöntem (insertBottomUp()) eklendi.

    Bir uygulayıcı, hangi yöntemin daha iyi performans gösterdiğine bağlı olarak insertTopDown() veya insertBottomUp() kullanarak düzenlediği ağaca düğümler ekler.

    LayoutNode ve View gibi bazı ağaçlar, yukarıdan aşağıya yerine aşağıdan yukarıya doğru inşa edildiğinde çok daha verimli olur. Bu değişiklikten önce, aşağıdan yukarıya doğru oluşturma işlemini uygulamak için bir ekleme yığını gerekiyordu. Bu yığın, performans için aşağıdan yukarıya doğru oluşturma işleminin gerekli olduğu her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte, ağacı aşağıdan yukarıya doğru oluşturmak için Applier , insertBottomUp()yukarıdan aşağıya doğru oluşturmak için ise insertTopDown() geçersiz kılınır. (Icbdc2)

  • Painter nesnelerinin, rasterleştirilmiş öğe biçimlerinden (ör. PNG'ler) veya VectorDrawable'lardan opak şekilde yüklenmesini sağlamak için painterResource API'si eklendi. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Bu yöntemi çağırarak Image composable'larında veya painter değiştiricilerinde kullanılacak bir Painter nesnesi alabilirler. (I2c703, b/173818471)

  • AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Desteği sonlandırılan annotatedString builder işlevi. (Idfe0b)

Sürüm 1.0.0-alpha08

2 Aralık 2020

androidx.compose.foundation:foundation:1.0.0-alpha08 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • maxLines parametresi, CoreTextField öğesinden kaldırıldı. Metin alanının yüksekliğini satır sayısıyla sınırlamak istiyorsanız BasicTextField öğesini kullanın. (Iec002)
  • await*TouchSlop() yöntemleri, işaretçinin aşağı hareketini algılamayacak şekilde değiştirildi ve *OrCancellation olarak yeniden adlandırıldı. Ayrıca orientationLock parametresinin kullanılması da kaldırıldı. (Ie96e1)
  • Compose yönergeleriyle tutarlılığı kontrol etmek için composable lambda parametre adlandırma ve konumuyla ilgili lint kontrolü eklendi. Ayrıca, lint kontrolü ve yönergelere göre, sondaki lambda'ları için ad olarak children kullanan bazı API'leri content olarak taşıdı. (Iec48e)
  • foundation:foundation-text API'leri foundation:foundation hizmetine taşındı. Paket yapısı aynı kaldı (Id3eb2)
  • Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan özellikler de dahil olmak üzere yeni çoklu dokunma hareketi algılayıcı. (Ic459d)
  • Yön kilitleme dahil olmak üzere işaretçi girişi API'sini askıya alan yeni sürükleme hareketi algılayıcı. (Icef25)
  • VectorAsset, ImageVector olarak yeniden adlandırıldı. VectorAsset, API Konseyi yönergelerine uygun olarak ImageVector'ın iç sınıfı olacak şekilde Builder olarak taşındı ve yeniden adlandırıldı. Uyumluluk için VectorAssetBuilder'ın ImageVector.Builder'a bağlantı oluşturacak typealias'ı eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • Temel anlamsal yapı özellikleri, kullanıcı arayüzüne taşındı (I6f05c).
  • Coroutine tabanlı kaydırma API'leri ekleyin:

    LazyListState.snapToItem ve LazyListState.smoothScrollBy'ı ve kaydırma kontrolü için daha düşük düzeyli API'leri ekler. Bu API'ler, kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, kaydırma işlemi tamamlanana kadar bekler ve ardından geri döner. (Ie5642)

  • BasicTextField, TextField ve OutlinedTextField'a singleLine parametresi eklendi. Metin alanının yatay olarak kaydırılabilen tek bir satır olması için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)

  • Yeni askıya alma işaretçisi girişi kullanılarak dokunma, çift dokunma, uzun basma ve basma göstergesi için hareket algılayıcı eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmasını kolaylaştırmak için birkaç yardımcı program da eklendi. (I00807)

  • Modifier.focusable, foundation'a eklendi. Bu özelliği, doğru anlamsal yapı ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için kullanın. (I41eb9, b/152525426, b/162865824)

  • Daha önce desteği sonlandırılan API'ler kaldırıldı: Border kaldırıldı, bunun yerine BorderStroke kullanın. Modifier.drawBorder kaldırıldı. Bunun yerine Modifier.border kullanın. Modifier.gravity kaldırıldı. Bunun yerine Modifier.align kullanın. Stack kaldırıldı, bunun yerine Box'ı kullanın (I32c2b, b/172470874)

  • AbsoluteArrangement, Arrangement.Absolute olarak yeniden adlandırıldı. (If26f2)

Hata Düzeltmeleri

  • DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılmış API'lerden mevcut API'lere geçişe yardımcı olmak için tür adları/yardımcı yöntemler içeren DrawModifierDeprecated.kt dosyasını oluşturdu. (Id6044, b/173834241)
  • Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca, API konseyinin geri bildirimine göre ilgili sınıflar da GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
  • <T>, SubcomposeLayout bildiriminden kaldırıldı. Artık tür belirtmeden kullanabilirsiniz. (Ib60c8)
  • PointerInputData'nın çalışma süresi ve konum alanları null yapılamaz hale getirildi. (Id468a)
  • MaterialTheme artık seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Materyal olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
  • Kutu'nun hizalama parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
  • offsetPx değiştiricilerinin adı offset olarak değiştirildi. Artık State yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
  • Ana pencerenin ön planda olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
  • TextInputService#onStateUpdated'e resetInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
  • TextFieldValue API güncellendi
    • TextFieldValue.composition salt okunur hale getirildi
    • Geçersiz seçim aralığı için kaldırılan istisna (I4a675, b/172239032)
  • Sona Ambient eklenerek adlandırılan ve desteği sonlandırılan Ambients'ı, diğer Ambients ve Compose API yönergelerine uygun olarak Ambient önekiyle başlayan yeni özelliklerle değiştirdik. (I33440)
  • Android Typeface sarmalayıcısı eklendi. typeface işleviyle Android yazı tipi yükleyebilirsiniz (ör. typeface(Typeface.DEFAULT)). Ayrıca typefaceFromFontFamily() olan eski aile yerini typeface() olarak yeniden adlandırdı (I52ab7)
  • Değiştirici fabrikalarının @Composable olarak işaretlenmek yerine dahili olarak androidx.compose.ui.composed {} kullandığını kontrol etmek için lint kontrolü eklendi. (I3c4bc)
  • Değiştirici fabrika işlevlerinin, Değiştirici üzerinde uzantı olarak tanımlandığını kontrol etmek için lint kontrolü eklendi. Böylece, bu işlevler akıcı bir şekilde birbirine bağlanabilir. (I07981)
  • Semantics bağımsız değişkeni mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521).
  • Eski ui-test modülünü ve saplarını kaldırma (I3a7cb)
  • TextUnit.Inherit, diğer birimlerle tutarlı olacak şekilde TextUnit.Unspecified olarak yeniden adlandırıldı. (Ifce19)
  • Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
  • foundation:foundation-text modülü, foundation:foundation (Idac0f) ile birleştirildi.
  • place(Offset) ve placeRelative(Offset) işlevleri kullanımdan kaldırıldı. Bunun yerine int ofsetlerle aşırı yüklemeleri kullanın (I4c5e7)
  • id, LayoutIdParentData için layoutId olarak yeniden adlandırıldı. Measurable.id, Measurable.layoutId olarak yeniden adlandırıldı. (Iadbcb, b/172449643)

Sürüm 1.0.0-alpha07

11 Kasım 2020

androidx.compose.foundation:foundation:1.0.0-alpha07, androidx.compose.foundation:foundation-layout:1.0.0-alpha07 ve androidx.compose.foundation:foundation-text:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Modifier.fillMaxSize[Width|Height]'ya benzer şekilde, artık LazyColumn/Row kapsamındaki Modifier.fillParentMaxSize[Width|Height] içinde kesirleri destekliyoruz (I797e2, b/166586426).
  • KeyboardOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)
  • Temel AmbientTextStyle, ProvideTextStyle ve AmbientContentColor işlevlerinin desteği sonlandırıldı. Bunun yerine, Material kitaplığında bulunan yeni sürümleri kullanın. Material olmayan uygulamalar için bunun yerine kendi bileşenlerinizde kullanılabilen, temalandırmaya özel kendi tasarım sisteminizi oluşturmanız gerekir. (I74acc, b/172067770)
  • foundation.Text desteği sonlandırıldı ve yerine material.Text getirildi. Bir temadan değer kullanmayan temel ve tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
  • TextField'lara maxLines eklendi (Ib2a5b)
  • TextField'ları KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
  • TextField'larda kullanılmak üzere KeyboardOptions eklendi (I9ca32).
  • BasicText'i, BasicTextField'a paralel olarak metin için tasarım açısından tarafsız bir API olarak ekler. (I28268)
  • ExperimentalLazyDsl notu kaldırıldı. LazyColumn/LazyRow artık @OptIn eklenmeden kullanılabilir (Idab7a, b/166584730)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'ı kullanın. (I896eb)
  • BasicTextField, hem CoreTextField hem de BaseTextField'in yerine eklendi (Id4cea).
  • Desteği sonlandırılan LazyColumnItems/LazyRowItems'ı kaldırın (I1d8a8)
  • Boyutlandırma için kullanımdan kaldırılan composable'lar, doğal ölçülere göre kaldırıldı. (I18537, b/171811496)
  • relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtme kolaylığı için paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
  • Genişlik karşılıklarını denemeden önce yüksekliğe göre boyutlandırma değiştiricisini belirtmek için kullanılabilecek olan aspectRatio değiştiricisine matchHeightConstraintsFirst parametresi eklendi. (Ie7c43, b/155290593)
  • Desteği sonlandırılan DpConstraints kaldırıldı. (I87884, b/171702471)

Hata Düzeltmeleri

  • Tekdüze olmayan ölçeklendirme kullanım alanlarını desteklemek için yatay ve dikey eksenlerin ölçeklendirme faktörlerini birbirinden bağımsız olarak temsil eden ScaleFactor inline sınıfı kullanıma sunuldu.
    • ContentScale'e computeScaleFactor yöntemi eklendi.
    • Kaynak sınırlarını, hedefi tamamen kaplayacak şekilde uzatmak için tek tip olmayan ölçeklendirme gerçekleştirmek üzere ContentScale.FillBounds eklendi.
    • ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
    • (Ic96a6, b/172291582)
  • captureToBitmap, captureToImage olarak değiştirildi. (I86385)
  • CoreText'i @InternalTextApi olarak işaretler. Bunun yerine BasicText'i kullanın. (I6aaeb)
  • Rename KeyboardOptions as ImeOptions (I82f36)
  • KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
  • CoreTextField, @InternalTextApi olarak işaretlendi. Bunun yerine BasicTextField'ı kullanın (Ie2469).
  • ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad).
  • ui-test-junit4 modülünü kullanıma sunma (Ib91f8)
  • Icon API, ColorFilter olmadan sağlanan öğeyi veya boyayı çizecek olası bir renk tonu olarak Color.Unspecified'ı alacak şekilde güncellendi. Daha önce, Color.Unspecified ile renklendirmeyi yoksayma girişimleri, şeffaf bir renkle renklendirmeye ve hiçbir şeyin oluşturulmamasına neden oluyordu. (I049e2, b/171624632)
  • MeasureResult, MeasureScope'un dışına taşındı. (Ibf96d, b/171184002)
  • Düzenle ilgili çeşitli semboller androidx.compose.ui'dan androidx.compose.layout.ui'ya taşındı. (I0fa98, b/170475424)
  • androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb).
  • FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7).
  • Geri çağırma olmadan SelectionContainer eklendi (Ibfadb)
  • SelectionContainer'daki SelectionHandles'ın konumları için testler ekleyin. (Ie93db)
  • Klavyede otomatik düzeltme IME seçeneği eklendi (I57b8d)

Sürüm 1.0.0-alpha06

28 Ekim 2020

androidx.compose.foundation:foundation:1.0.0-alpha06, androidx.compose.foundation:foundation-layout:1.0.0-alpha06 ve androidx.compose.foundation:foundation-text:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • androidx.compose.foundation.Icon, androidx.compose.material.Icon'a taşındı. Material kitaplığını kullanmak istemiyorsanız Painter ile birlikte Image bileşenini / Modifier.paint() işlevini de kullanabilirsiniz. (I9f622)
  • Modifier.scrollable, ScrollableColumn ve LazyColumnFor'a interactionState eklendi (I81566, b/169509805)
  • alignByBaseline, RowScope'a eklendi ve alignWithSiblings, alignBy olarak yeniden adlandırıldı (I06503, b/170628732).
  • Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)
  • CoreTextField'a maxLines eklendi (Ibee58, b/143687793)
  • CoreTextField'a softwrap eklendi. (I21a4b)

Hata Düzeltmeleri

  • VectorPainter'ı, composable API'nin kompozisyonlar arasında verileri kalıcı hale getirmek için dahili olarak "remember"dan yararlandığını daha iyi belirtmek amacıyla rememberVectorPainter lehine kullanımdan kaldırın. (Ifda43)
  • ComposeTestRule'da geçişleri etkinleştirin. Yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)
  • CoreTextField'e tek satırlık klavye seçeneği eklendi (I72e6d)
  • Compose'da nasıl kullanıldığını daha iyi ifade etmek için Radius API'nin adı CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirten doküman güncellendi. (I130c7, b/168762961)
  • Birleştirilmiş değiştiricide inceleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569)
  • Klavye Büyük Harf IME Seçeneği eklendi (I8ac38)
  • Sağdan sola dil için tutma yerinin konumunu düzeltin. (I6e1e0)
  • Önemli değişiklik: Yalnızca tüketim verilerinin işaretçi etkinliklerinde değiştirilebilmesi gerektiğinden PointerInputFilter.onPointerEvent(...) işlevinden dönüş değeri kaldırıldı. PointerInputFilter.onPointerEvent(...) işlevinden veri döndürmek yerine, artık yalnızca iletilen PointerEvents'in tüketim verilerini değiştirebilirsiniz. (I6acd0)
  • Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)

Sürüm 1.0.0-alpha05

14 Ekim 2020

androidx.compose.foundation:foundation:1.0.0-alpha05, androidx.compose.foundation:foundation-layout:1.0.0-alpha05 ve androidx.compose.foundation:foundation-text:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • CoreTextField artık imleç işlevini destekliyor (Id23aa)
  • contentColor() ve currentTextStyle() API'lerinin desteği sonlandırıldı ve bunların yerine sırasıyla AmbientContentColor ve AmbientTextStyle ortamları kullanıma sunuldu. Diğer tüm ortamlar gibi, ortam özelliği için .current kullanarak geçerli değere erişebilirsiniz. Bu değişiklik, tutarlılık sağlamak ve aynı şeyi yapmanın birden fazla yolunu önlemek için yapılmıştır. Ayrıca, bazı ortam özelliklerinin adını, amaçlarını daha iyi açıklayacak şekilde aşağıdaki gibi değiştirir:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)

Hata Düzeltmeleri

  • Satır içi sınıflar için sentinel değerlerinin standartlaştırılması kapsamında, diğer satır içi sınıflarla tutarlılık sağlamak amacıyla Color.Unset'i Color.Unspecified olarak yeniden adlandırın (I97611, b/169797763).
  • Kopyalama/yapıştırma/kesme erişilebilirlik işlemleri eklendi (I6db4f)
  • TextOverflow.None kullanıma sunuldu. Taşma None olduğunda Text, taşmayı artık işlemeyecek ve gerçek boyutunu LayoutNode'a bildirecek. (I175c9, b/158830170)
  • Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, sonlu olmayan boyutların yanı sıra Size.Unspecified'a karşı da kontrol edecek şekilde güncellendi. (I95a7e)
  • Paging Compose modülü ve çağrı cihazı entegrasyonu eklendi (Ib85da)
  • LazyListScope'u boş değerler alacak şekilde değiştirin (I1765b).
  • OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() ise onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)
  • LazyColumn/Row için örnekler eklendi (Idc16d)
  • items ve itemsIndexed yöntemlerinin emptyList'e izin vermesi için düzeltme (I06647)
  • Müfettiş bilgilerini belirtmek için DSL ekleyin (Ic9a22)
  • LongPress'i Text'e taşıyın. (Iff2bc)
  • Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)
  • Erişilebilirlik için AnnotatedString'i SpannableString'e dönüştürme desteği eklendi. (Ief907)
  • PointerInputFilter.onPointerInput(...) kaldırıldı. PointerInputFilter.onPointerEvent(...) kullanılmalıdır. (I6f04a)

Sürüm 1.0.0-alpha04

1 Ekim 2020

androidx.compose.foundation:foundation:1.0.0-alpha04, androidx.compose.foundation:foundation-layout:1.0.0-alpha04 ve androidx.compose.foundation:foundation-text:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Stack'in adı Box olarak değiştirildi. Daha önce mevcut olan foundation.Box, compose.foundation.layout'taki yeni Box lehine kullanımdan kaldırılacak. Yeni kutunun davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, önceki kutunun davranışından farklıdır. Önceki kutu, sütuna benzer şekilde davranıyordu. (I94893, b/167680279)
  • Kutu dekorasyonu parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine değiştiricileri (Modifier.background, Modifier.border, Modifier.padding) kullanın (Ibae92, b/167680279).
  • Yeni bir LazyListState sınıfı ekleyin. Bu, LazyRow ve LazyColumn bileşenlerinin kaydırma konumunun gözlemlenmesine ve kontrol edilmesine olanak tanır. Örnekler, rememberLazyListState() kullanılarak oluşturulabilir ve bileşenin durum parametresine iletilebilir. Şu anda, ilk görünür öğe ve ofsetler bu ilk sürümde gözlemlenebilir. (Ic7cb7, b/159307669)
  • Lazy list konum ve kaydırma uzaklığı artık Etkinlik yeniden oluşturma işlemi sırasında kaydedilip geri yükleniyor (Ie045f, b/166589058)
  • Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
  • Paylaşılan durumun zaman içinde tek bir değiştiricisini tutmak ve çakışan değiştiricileri önceliğe göre iptal etmek için MutatorMutex yardımcı programı eklendi (I3f975).
  • Annotated rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @VisibleForTesting, bunları dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
  • Dize girişli metin için inlineContent parametresi kaldırıldı. inlineContent, AnnotatedString ile çalışması gerektiğinden kullanılmaz. (Ief403)
  • Desteği sonlandırılan özel Düzenleme API'leri kaldırıldı. (Ic576d, b/168297922, b/168297923)
  • Düzen öğesinin sonsuz maksimum kısıtlamalarla ölçülmesini sağlayan unbounded parametresi, wrapContentSize değiştiricilerine eklendi. (I77951, b/158559319)
  • Düzen kapsamlarındaki içeriklerin (ör. RowScope'ta alignWithSiblings) statik olarak içe aktarılması engellendi. Bunun yerine açık kapsam alternatifi kullanılmalıdır: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)

Hata Düzeltmeleri

  • Birçok grafik API'si güncellendi.
    • DrawScope ve DrawTransform'taki x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresini kullanacak şekilde ölçek ve döndürme dönüştürme API'leri güncellendi
    • Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı.
    • Yarıçap belgeleri, elipsin yanı sıra oval olarak da belirtilecek şekilde güncellendi.
    • Satır içi Radius sınıfının herkese açık oluşturucusunun doğrudan çağrılmaması, bunun yerine Radius nesnelerinin işlev oluşturucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi.
    • RoundRect API'leri kaldırıldı. Bu API'ler, topRight, bottomRight, bottomCenter vb. sorgulamak için kullanılıyordu.
    • Rect.shift yerine Rect.translate kullanımdan kaldırıldı
    • RoundRect.grow ve Rect.shrink API'leri kaldırıldı
    • RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı.
    • RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
    • RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
    • RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı.
    • RoundRect.center işlevi, özellik olarak değiştirildi.
    • RoundRect oluşturucusu, x/y yarıçap değerleri için ayrı parametreler yerine Yarıçap özelliklerini kullanacak şekilde güncellendi.
    • Kaynak noktası 0,0 olan bir dikdörtgen olduğu varsayılan boyut API'leri kaldırıldı.
    • Radius'a bir yıkım API'si eklendi.
    • Çeşitli RoundRect uzantısı işlevleri, özellikler olarak taşındı.
    • (I8f5c7, b/168762961)
  • LazyColumnFor/LazyRowFor'da her kaydırma sırasında gereksiz yeniden oluşturmalar yapılmayarak kaydırma için performans optimizasyonları yapıldı (I64f65, b/168293643, b/167972292, b/165028371).
  • Kaydırma işleminden sonra öğeler değiştirildiğinde LazyColumnFor/LazyRowFor'da kilitlenme sorunu düzeltildi ve daha önce görünür olan öğe kaldırıldığında otomatik olarak yukarı kaydırma özelliği uygulandı. Böylece, artık sonunda boşluklar gösterilmiyor (I220ab, b/161480164, b/167855468).
  • ScrollableContainer ve LazyColumnFor gibi aynı yönde kaydırılabilir kapsayıcıları iç içe yerleştirmeye artık izin verilmiyor. Bu özellik hiçbir zaman desteklenmedi ve LazyColumnFor öğelerinin oluşturulmasının tüm kolaylığını ve hızlı kaydırma işlevini bozuyordu (I6e101).
  • Birçok grafik API'si güncellendi.
    • Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için kapsamlı dönüşüm yöntemleriyle DrawScope API'leri güncellendi.
    • clipPath belgeleri, yuvarlatılmış dikdörtgen yerine Path'e referans verecek şekilde güncellendi
    • clipPath'teki sağ parametre için dokümanlardaki boşluk sorunu düzeltildi.
    • DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı.
    • Inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı.
    • 4 sınıra aynı içe yerleştirme değerini sağlayan içe yerleştirme aşırı yüklemesi eklendi.
    • İç kısma yerleştirme yönteminin 4 tarafa da uygulanacağını belirten belgeler kaldırıldı.
    • Rect sınıfıyla ilgili dokümanlar güncellendi
    • Rect parametreleriyle ilgili yorumlar, kdoc stiline uygun şekilde güncellendi.
    • Rect.join ve Rect.expandToInclude kaldırıldı
    • Rect.translate(offset) için aşırı yükleme oluşturuldu ve Rect.shift kullanımdan kaldırıldı
    • (If086a, b/167737376)
  • Semantik özelliklere AccessibilityScrollState ekleyin. (Ifeda9)
  • Nesne oluşturmayı önlemek için TextRange'i satır içi yapın. (Id034b)
  • ParagraphConstraints kaldırıldı. Genişlik artık doğrudan paragrafa aktarılıyor. (Ica712)

Sürüm 1.0.0-alpha03

16 Eylül 2020

androidx.compose.foundation:foundation:1.0.0-alpha03, androidx.compose.foundation:foundation-layout:1.0.0-alpha03 ve androidx.compose.foundation:foundation-text:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • InnerPadding, PaddingValues olarak yeniden adlandırıldı. (I195f1, b/167389171)
  • Düzen API'lerinde yer çekimi kullanımları, düzenle veya düzenleme olarak yeniden adlandırıldı. (I2421a, b/164077038)
  • Stack'e, tüm Stack alt öğeleri için varsayılan hizalamanın belirtilmesine olanak tanıyan bir hizalama parametresi eklendi. (Ie80ca, b/164085265)

Hata Düzeltmeleri

  • DpConstraints ve bunu kullanan API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
  • widthIn öğesinin minWidth ve maxWidth parametreleri, min ve max olarak yeniden adlandırıldı. Aynı durum preferredWidthIn, heightIn, preferredHeightIn için de geçerlidir. (I0e5e1, b/167389544)
  • Mevcut global yöntemler kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer global yöntemler eklendi. (Ieae36)
  • GestureScope'ta, geçersiz kaydırma hareketlerinin oluşturulmasına (Iaf358, b/166589947) neden olan boyut ve konum hesaplamaları düzeltildi.
  • createAndroidComposeRule ve AndroidInputDispatcher, androidx.ui.test.android konumundan androidx.ui.test konumuna taşındı (Idef08, b/164060572)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.foundation:foundation:1.0.0-alpha02, androidx.compose.foundation:foundation-layout:1.0.0-alpha02 ve androidx.compose.foundation:foundation-text:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • TestUiDispatcher deneysel olarak işaretlendi (Iae99d, b/161247083)
  • ManualFrameClock.hasAwaiters, söz konusu saatten bir çerçeve bekleyen bir şey olup olmadığını görmek için eklendi; runWithManualClock, ManualFrameClock gerektiren testler çalıştırılırken runBlocking yerine kullanıldı; TestUiDispatcher.Main, testlerinizde ana kullanıcı arayüzü dağıtıcısına kolay erişim sağlar.

    Örneğin:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (I0a85b, b/161247083)

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.foundation:foundation:1.0.0-alpha01, androidx.compose.foundation:foundation-layout:1.0.0-alpha01 ve androidx.compose.foundation:foundation-text:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü şu commit'leri içerir.

Sürüm 0.1.0-dev

Sürüm 0.1.0-dev17

19 Ağustos 2020

androidx.compose.foundation:foundation:0.1.0-dev17, androidx.compose.foundation:foundation-layout:0.1.0-dev17 ve androidx.compose.foundation:foundation-text:0.1.0-dev17 yayınlandı. Version 0.1.0-dev17 contains these commits.

API Değişiklikleri

  • Row ve Column için spacedBy Arrangement eklendi. Bu sayede, düzen alt öğeleri sabit bir aralıkla konumlandırılabiliyor. Hizalı Düzenleme, alt öğeleri bir Hizalamaya göre Satır/Sütunda yan yana ve hizalı olarak konumlandırmak için de eklendi. Önceki Arrangement.Vertical#arrange ve Arrangement.Horizontal#arrange yöntemlerinin desteği sonlandırıldı. Gelecekte özel düzenlemeler yazma işlemi desteklenmeyecek. (I6733d, b/161985975)
  • Offset, satır içi sınıf (Iaec70) haline geldi.
  • TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
  • Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Border veri sınıfının yerini BorderStroke aldı (I4257d, b/158160576)
  • VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Modifier.drawBackground kaldırıldı. Modifier.background kullanma (I73b0d, b/163019183)
  • LazyItemScope'tan, kullanımdan kaldırılmış olarak işaretlenen fillMax* değiştiricilerini kaldırın. Bu değiştiriciler, LazyColumnFor'un doğrudan alt öğeleri olmayan öğelere (Ifa78d) bu tür değiştiricilerin doğru şekilde eklenmesini zorlaştırıyor.
  • DSL olarak LazyColumn/LazyRow uygulaması eklendi (I93cc6)
  • Constraints artık satır içi bir sınıf (I88736)
  • fillMaxWidth, fillMaxHeight ve fillMaxSize değiştiricilerini kullanarak bir düzeni kullanılabilir alanın bir kısmı kadar boyutlandırma özelliği eklendi. (I945bb, b/161562591)

Hata Düzeltmeleri

  • SelectionContainer'a değiştirici parametresi eklendi (I4aada, b/161487952)
  • SemanticsPropertyKey'e mergePolicy lambda'sı eklendi. Bu, mergeAllDescendants anlamsal yapısı birleştirme için özel bir politika tanımlamak üzere kullanılabilir. Varsayılan politika, üst değer zaten mevcutsa onu, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)
  • PlacementScope.placeAbsolute(), PlacementScope.place() olarak yeniden adlandırıldı ve önceki PlacementScope.place(), PlacementScope.placeRelative() olarak yeniden adlandırıldı. Bu nedenle, PlacementScope.place() yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmayacak. Bu isteniyorsa bunun yerine PlacementScope.placeRelative() politikasını kullanın. (I873ac, b/162916675)
  • Desteği sonlandırılan FilledTextField bileşeni kaldırıldı. Dolu metin alanının Material Design uygulamasını almak için lütfen bunun yerine TextField kullanın. (I5e889)
  • LinearProgressIndicator'a backgroundColor parametresi eklendi ve CircularProgressIndicator'dan dahili dolgu kaldırıldı. Değerler arasında ilerleme animasyonu yaparken varsayılan AnimationSpec olarak kullanılabilecek yeni ProgressIndicatorConstants.DefaultProgressAnimationSpec eklendi (If38b5, b/161809914, b/161804677).
  • state { ... } composable'ı artık netlik için remember { mutableStateOf(...) }'e yapılan açık çağrılar lehine kullanımdan kaldırıldı. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf özelliği temsilcisi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)
  • Compose adlandırma kalıplarına daha iyi uyması için RRect, RoundRect olarak yeniden adlandırıldı. RRect'e benzer işlev oluşturucular oluşturuldu ve RRect işlev oluşturucularının desteği sonlandırıldı (I5d325).
  • onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine alt düzende onPositioned ve OnPositionedModifier'ı kullanmalıdır. (I4522e, b/162109766)
  • IntSize artık satır içi bir sınıf (I2bf42)
  • Düzenlemek için Boş Alana Uzun Basın. (Ib1e5b)
  • Metne dokunduktan sonra kayan araç çubuğunu gizleme (If4525)
  • Seçim güncellenirken kayan araç çubuğunu gizleme. (I8444c)
  • Bulanıklaştırma zamanı seçeneğinin işaretini kaldırın. (I781a2)

Sürüm 0.1.0-dev16

5 Ağustos 2020

androidx.compose.foundation:foundation:0.1.0-dev16, androidx.compose.foundation:foundation-layout:0.1.0-dev16 ve androidx.compose.foundation:foundation-text:0.1.0-dev16 yayınlandı. 0.1.0-dev16 sürümü şu commit'leri içerir.

API Değişiklikleri

  • LazyItemScope, Lazy listelerinin itemContent parametresi için eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() işe yaramadığında kullanım alanını çözen, üst öğenin maksimum boyutunu doldurmak için değiştiriciler sağlar. (Ibd3b2, b/162248854)
  • İletişim kutusunu kullanıcı arayüzüne taşıma (I47fa6)
  • LazyColumnForIndexed/LazyRowForIndexed eklendi: itemCallback'te hem dizin hem de öğe sağlayan LazyColumnFor/LazyRowFor sürümleri. Mevcut bir öğenin yanı sıra mevcut bir dizini de bilmeniz gerektiğinde kullanışlıdır. (I65ff3)
  • Modifier.deternimateProgress, Modifier.progressSemantics olarak yeniden adlandırıldı (I9c0b4).
  • LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor olarak yeniden adlandırıldı (I84f84).
  • En iyi uygulama olarak bazı işaretler/açıklamalar ekleyin. (I66b20)
  • foundation.shape.corner paketi, foundation.share olarak düzleştirildi (I46491, b/161887429).
  • LazyRowItems/LazyColumnItems için сrossaxis gravity parametresi eklendi. LazyRowItems/LazyColumnItems artık içerik sarmalama davranışını destekliyor. (Ib39fc)
  • ZoomableState, ZoomableController olarak yeniden adlandırıldı. smoothScale için özel eğri desteği eklendi. enabled ve onZoomStarted işlevleri eklendi (If8b8f)
  • İstenen en basit API'nin kolayca bulunup kullanılabilmesi için Material FilledTextField, TextField olarak, temel TextField ise BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676).
  • Daha önce kullanımdan kaldırılan AdapterList kaldırıldı. Bunun yerine LazyColumnItems'ı kullanın (I12b9b)
  • Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
  • Eski ConstraintLayout DSL kaldırıldı. ConstraintSet2, ConstraintSet olarak yeniden adlandırıldı. (If58d1, b/162450908)
  • Modifier.absoluteOffset() ve Modifier.absoluteOffsetPx() eklendi. Offset değiştiricilerin aksine, mutlak offset değiştiriciler sağdan sola bağlamda otomatik olarak yansıtılmaz (I3aa21).
  • Row ve Column artık satır içi işlevler olduğundan kullanımları önemli ölçüde kolaylaştı. (I75c10)

Hata Düzeltmeleri

  • Geniş kapsamlı API düzeltmelerini ele alma (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırın
    2. Tutarlı bir API yüzeyine sahip olmak için Offset ve IntOffset sınıflarını hizalama
    3. Offset API ile tutarlı olması için IntOffset.Origin'i IntOffset.Zero olarak yeniden adlandırın.
    4. Tüketicilerin kendi Canvas örneklerini oluşturabilmesi için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı.
    5. DrawScope'u lateinit yerine boş olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş olmamasını sağlamak için boş EmptyCanvas sınıfı oluşturuldu.
    6. ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı.
    7. FilterQuality enum'ları Pascal Case olarak yeniden adlandırıldı.
    8. StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı.
    9. PointMode enums, Pascal Case olacak şekilde yeniden adlandırıldı.
    10. Renamed PaintingStyle enums to be Pascal Case
    11. PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı.
    12. StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı.
    13. DrawCache uygulaması, lateinit parametrelerini kullanmayacak şekilde güncellendi.
    14. DrawScope, fillPaint ve strokePaint dahili parametreleri için artık geç yetkilendirme kullanmayacak şekilde güncellendi.
    15. Daha az ek yük için Box kullanımını önlemek üzere Image composable'ı güncelledi.
    16. Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi.
    17. Her yol talimatı için @Immutable ek açıklamaları içerecek şekilde PathNode güncellendi.
    18. Compose bu kontrolleri zaten işlediğinden, gereksiz eşitlik koşullu kontrollerini kaldırmak için Vector alt bileşimi güncellendi.
    19. İşlev oluşturucular lehine desteği sonlandırılan Rect yardımcı oluşturucu yöntemleri
    20. @Immutable ve @Stable API'lerle güncellenen Brush sınıfları ve işlev oluşturucuları
    21. VertexMode enum'ı PascalCase olacak şekilde güncellendi
    22. DrawScope selectPaint yöntemi, değişmişse boyadaki kontur parametrelerini koşullu olarak üzerine yazacak şekilde güncellendi.
    23. Yapı bozma API'si eklemek, UnspecifiedSize'ı Unspecified olarak yeniden adlandırmak ve kullanılmayan yöntemleri kaldırmak için Boyut güncellendi.
  • Yeni eş yordam tabanlı saatler ile eski geri çağırma tabanlı saatleri kullanan API'ler arasındaki boşluğu doldurmak için MonotonicFrameClock'u AnimationClockObservable olarak kullanmanıza olanak tanıyan MonotonicFrameAnimationClock eklendi.

    ManualAnimationClock'un MonotonicFrameClock eşdeğeri artık ManualFrameClock'tur. (I111c7, b/161247083)

  • SemanticsNodeInteraction.performPartialGesture kaldırıldı. Bunun yerine SemanticsNodeInteraction.performGesture kullanın. (Id9b62)

  • SemanticsNodeInteraction.getBoundsInRoot(), SemanticsNodeInteraction.getUnclippedBoundsInRoot() olarak yeniden adlandırıldı (Icafdf, b/161336532)

  • Sağdan sola dil desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)

  • Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then kullanın. "Sonra" kelimesi, sıralama konusunda daha güçlü bir sinyal verirken Modifier.padding().background() + anotherModifier yazılmasını da engeller. Bu, zinciri kırar ve okunmasını zorlaştırır (Iedd58, b/161529964).

  • isFocused() ve isNotFocused() SemanticsMatcher eklendi. (I0b760)

  • RemeasurementModifier eklendi. Kullanıcıların düzeni eşzamanlı olarak yeniden ölçmesine olanak tanır. Genel olarak, yeniden ölçme/yeniden düzenleme otomatik olarak yapıldığından bu parametreye hiçbir zaman ihtiyacınız olmaz ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)

  • isSystemInDarkTheme artık her zaman sistem genelindeki koyu tema ayarını dikkate alıyor ve en son kılavuzlara uygun olarak Q'dan önceki güç tasarrufu durumunu yoksayıyor. (I0c10c)

  • OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned'ı kullanın. (I87f95, b/162109766)

  • AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)

  • TextLayoutResult'u almak için erişilebilirlik işlemi ekleyin (I9d6e6)

Sürüm 0.1.0-dev15

22 Temmuz 2020

androidx.compose.foundation:foundation:0.1.0-dev15, androidx.compose.foundation:foundation-layout:0.1.0-dev15 ve androidx.compose.foundation:foundation-text:0.1.0-dev15 yayınlandı. 0.1.0-dev15 sürümü şu commit'leri içerir.

Oluşturma'nın 0.1.0-dev15 sürümünü kullanmak için:

Bağımlılıkları Güncelleme

  • Compose'un 0.1.0-dev15 sürümünü kullanmak için Bağımlılıkları bildirme bölümünde yukarıda gösterilen yeni kod snippet'lerine göre bağımlılıklarınızı güncellemeniz gerekir.

API Değişiklikleri

  • Benzer şekilde, ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems'daki yeni parametreye ek olarak artık içerik kırpıldıktan sonra içerik için dolgu eklemeye olanak tanıyan contentPadding parametresi de var. Bu, yalnızca değiştirici parametresiyle mümkün değildir. Ayrıca, yalnızca ilk öğeden önce veya son öğeden sonra boşluk eklenmesine de olanak tanır. (Ibc24e)
  • Metin alanlarındaki onFocusChange geri çağırma işlevi onFocusChanged olarak yeniden adlandırıldı (Ida4a1).
  • VerticalScroller ve HoriziontalScroller desteği sonlandırıldı. Column/Row davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u veya kendi öğenizde Modifier.verticalScroll ve Modifier.horizontalScroll'u kullanın. Benzer şekilde, ScrollerPosition, ScrollState' (I400ce, b/157225838, b/149460415, b/154105299) lehine kullanımdan kaldırıldı.
  • Modifier.draggable ve Modifier.scrollable API'leri yeniden düzenlendi. Orientation lehine DragDirection kaldırıldı. Kaydırılabilir için gerekli durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
  • Tek değerli anlamsal yapı özellikleri artık bir çağırma stili kullanıyor. Örneğin, "semantics { hidden = true }" artık şu şekilde yazılıyor: semantics { hidden() }. (Ic1afd, b/145951226, b/145955412)
  • RoundedCornerShape ve CutCornerShape tarafından kullanılan köşe boyutları artık %50'den büyük olabilir (Id2340, b/160400213)
  • Image composable için varsayılan ContentScale parametresi Inside'dan Fit'e değiştirildi. Bu, en boy oranı korunurken düzen boyutu, Painter'ın doğal boyutundan büyükse temel Painter'ın ölçeğini artırmak için yapıldı. Bu davranış, composable'ın boyutunu hesaplamak için yalnızca doğal boyut kullanıldığında varsayılan davranışı etkilemeden, resme sabit boyutlar sağlama beklentileriyle daha iyi eşleşir. (I40ae3, b/159838006)
  • Statik animasyon spesifikasyonu kavramını netleştirmek için üst düzey API'lerde AnimationBuilder yerine AnimationSpec kullanın. -Tween ve spring gibi AnimationSpec'ler oluşturmak için lambda şartını kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine, doğrudan oluşturucu parametrelerini alır. -Oluşturuculara güvenmek yerine oluşturucuları açarak AnimationSpec'in genel kullanım kolaylığını iyileştirin. -KeyFrame'lerin ve Tween'in süresini ve gecikmesini Int olarak değiştirin. Bu, gereksiz tür yayınlarını ve yöntem aşırı yüklemesini (hem Long hem de Int'i desteklemek için) ortadan kaldırır. (Ica0b4)
  • Tıklanabilir özelliği kaldırıldı. Modifier.clickable (I84bdf) kullanın.
  • LazyRowItems eklendi: LazyColumnItems'ın yatay kaydırma analogu (Ibbcf7)
  • Düşük düzeyde durum bilgisiz animasyon API'leri kullanıma sunuldu. Bu API'ler (I63bf7)
  • androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'ları da desteği sonlandırılmış olarak işaretlenir. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005).
  • IntPx kullanımı Int ile değiştirildi. IntPxPosition, IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
  • androidx.ui.foundation.shape.RectangleShape kaldırıldı; androidx.ui.graphics.RectangleShape kullanın (I94939, b/154507984)
  • Boyutlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Size sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kayan sayılar olarak temsil etmek için 2 kayan sayı değerini paketlemek üzere uzun bir satır içi sınıfın avantajlarını sağlar. (Ic0191)
  • Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan değerler olarak temsil edilen x ve y uzaklıklarını temsil etmek için 2 kayan değer paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (I3ad98)
  • İki parmakla yakınlaştırma işlevi için Modifier.zoomable eklendi (Id5d63)
  • Açılıp kapatılabilen bileşen kullanımdan kaldırıldı. Bunun yerine Modifier.toggleable kullanın (I35220, b/157642842)
  • MutuallyExclusiveSetItem desteği sonlandırıldı. Bunun yerine Modifier.selectable kullanın. (I02b47, b/157642842)
  • TestTag desteği sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
  • Daha önce yanlışlıkla eklenmemiş olan fontWeight parametresini Text'e ekler (I56937).
  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I19d02).
  • VerticalScroller artık kullanıma hazır bir şekilde Column sağlıyor. HorizontalScroller artık kutudan çıkar çıkmaz Row'u sağlar. (Ieca5d, b/157020670)
  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanıldığı büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b).
  • Modifier.indication, temel pakete eklendi. Özel etkileşimli öğelerinizde basma/sürükleme/diğer işlemleri göstermek için kullanın (I8425f, b/155287131).
  • VerticalScroller ve HorizontalScroller artık ScrollerPosition'da isReversed ayarı yapıldığında ters kaydırmayı destekliyor (I953bd).
  • Metin düzenine composable'lar ekleme desteği. (I1373c)
  • CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. Density arayüzünü uygulamak ve LayoutDirection sağlamak için DrawScope güncellendi. ContentDrawScope'taki silinen DrawScope alt sınıfı Painter ve PainterModifier, DrawScope bunu zaten sağladığı için artık RTL özelliğini kendileri korumayacak şekilde güncellendi (I1798e).
  • Desteği sonlandırılan DrawBackground API'si, Modifier'daki drawBackground uzantısı API'leri lehine kaldırıldı. Kod yollarını azaltmak ve Modifier'ın kompozisyonun bir parçası olarak oluşturulması gerekliliğini ortadan kaldırmak için renk, fırça ve boya drawBackground uygulamaları yeniden düzenlendi. (I0343a)
  • Tuval yerine CanvasScope'u kullanıma sunan, daha üst düzeydeki Compose API'leri güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini korumasına gerek kalmaz. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, temel Canvas ile çizim komutları vermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
  • HorizontalScroller ve VerticalScroller, kaydedilmiş örnek durumunu kullanarak kaydırma konumunu geri yüklemiyor. (Ia0fae, b/155075048)
  • FocusManagerAmbient kaldırıldı. Odağı almak için FocusModifier.requestFocus'i kullanın. (Ic4826)
  • Tablo düzeni, yenilenmiş bir API ile tekrar kullanıma sunulana kadar geçici olarak kaldırıldı. (Id88a7)
  • Durum bilgisi içermeyen, bildirim temelli bir çizim API'si yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API'si oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır ve boyutlandırma bilgileri de ilgili yerleştirme sınırlarıyla sınırlıdır. Çizim işlemlerini yapılandırmak için tüketicinin kendi Paint durumu nesnesini koruması gerekmez.

    CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli grafikler demosunu (Ifd86d) içerecek şekilde güncellendi.

  • ColoredRect kaldırıldı. Bunun yerine drawBackground değiştiricisiyle User Box'ı kullanın (I983c7, b/152753731)

  • TextField'a imleç rengi özelleştirme özelliği ekleyin (I6e33f)

  • Artık onTextInputStarted geri çağırma işlevi (I8dc44, b/151860051) tarafından sağlanan SoftwareKeyboardController kullanılarak yazılım klavyesi gizlenebilir/gösterilebilir.

  • TextField ile kullanılan TextFieldValue artık şu şekilde kullanıldığında etkinlik yeniden oluşturulsa bile korunabilir: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • Sık kullanılan parametreleri Text() işlevine ekler. Şu anda Text(style = TextStyle(textAlign = TextAlign.Center)) gibi bu parametrelerden az sayıda iletmek için yerel bir metin stili oluşturuyorsanız artık parametreleri doğrudan sağlayabilirsiniz: Text(textAlign = TextAlign.Center) (I82768)

  • Odak alt sistemiyle entegrasyon için CoreTextField/TextField odak tanımlayıcı <0x0A> parametresi FocusNode ile değiştirildi. (I7ea48)

  • TextField güncellemesi: Yatay boyutta, kendisine ayrılan tüm alanı kaplar (Ib08df, b/154638552)

  • InteractionState ve Interaction eklendi. Böylece, basma ve sürükleme gibi kullanıcı arayüzü durumu değişikliklerine tepki veren bileşenler oluşturmak kolaylaştı (Icfe25, b/152525426).

  • RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics.* konumuna taşındı. (Ia74d5, b/154507984)

  • API'deki tüm null değer atanabilir Color kullanımları, null değer atanabilir olmayanlarla değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7).

  • TextField API güncellemesi: onFocus ve onBlur geri çağırmaları, parametreli tek bir onFocusChange(Boolean) geri çağırmasında birleştirildi (I66cd3).

  • ScaleFit, ContentScale olarak yeniden adlandırıldı. ContentScale, ui-graphics'ten ui-core'a taşındı. Modül, Alignment API ile aynı modülde yer alacak. FillMaxDimension, Crop olarak yeniden adlandırıldı. FillMinDimension, Fit olarak yeniden adlandırıldı. Fit, Inside olarak yeniden adlandırıldı. Bu değişiklik, ImageView.ScaleType eşdeğerleriyle daha iyi eşleşmesini sağlar. Crop ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu elde ettiği, Fit ve Alignment.Center kombinasyonunun ise ImageView.ScaleType.FIT_CENTER ile aynı sonucu elde ettiği belirtildi. Inside ve Alignment.Center kombinasyonu, ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu elde eder (I45f09, b/152842521).

  • ProvideContentColor kaldırıldı. Bunun yerine doğrudan Providers (Iee942) ile ContentColorAmbient kullanılacak.

  • Metne renk parametresi ekler. Böylece, temada sağlanan stil ile manuel olarak birleştirme yapmaya gerek kalmadan metin stilinin rengi geçersiz kılınabilir. (I41a66)

  • DrawModifier API'yi iyileştirme:

    • draw() ContentDrawScope için alıcı kapsamı oluşturuldu.
    • draw() işlevindeki tüm parametreler kaldırıldı
    • DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
    • ContentDrawScope'un drawContent() yöntemi var (Ibaced, b/152919067)
  • ColoredRect desteği sonlandırıldı. Bunun yerine Box(Modifier.preferredSize(width, height).drawBackground(color)) kullanın. (I499fa, b/152753731)

  • Şekil temalandırma sistemi, Materyal Tasarım spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğu tarafından kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz (Ifb4d1).

  • Değiştirici artı operatör, fabrika uzantısı işlevleriyle (I225e4) değiştirildi.

  • Sürüklenebilir, değiştiriciye taşındı (Id9b16, b/151959544)

  • Text, androidx.ui.core paketinden androidx.ui.foundation paketine taşındı. (I87ce5)

  • Checkbox, Switch ve Toggleable'a enabled parametresi eklendi (I41c16)

  • Ripple artık bir değiştirici. Clickable henüz dönüştürülmediğinden önerilen kullanım Clickable(onClick = { ... }, modifier = ripple())'dır (Ie5200, b/151331852, b/150060763).

  • Vektör grafikler için mevcut alt bileşen API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine VectorPainter nesnesidir. VectorPainter lehine önceki DrawVector composables'ın desteği sonlandırıldı.

    Image(Painter) API'sinin adı PaintBox(Painter) olarak değiştirildi. ImageAsset yerine VectorAsset ile çalışan, Image composable'a benzer şekilde davranan Vector composable oluşturuldu (I9af9a, b/149030271).

  • Belirli bir ImageAsset'i ekrana çizmenin yanı sıra boyutlandırma/düzenlemeyi de işlemek için CreatedImage composable'ı. Bu composable, kendi boyutuna uygun şekilde herhangi bir Painter örneğinin çizilmesini desteklemenin yanı sıra belirli bir sabit boyutu veya minimum boyutu da destekler (Ibcc8f).

  • Button, FloatingActionButton ve Clickable artık ayrı bir enabled parametresine sahip. Düğmedeki bazı parametreler yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)

  • Resim verileri ile düzen oluşturmak ve içerik çizmek için kullanılan Image composable arasındaki farkı daha iyi ayırt etmek amacıyla Image, ImageAsset olarak yeniden adlandırıldı.

    Geleneksel Android uygulama geliştirme ile Compose çerçevesini birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap üzerinde uzantı yöntemi oluşturuldu. Bitmap.asImageAsset(). (Id5bbd)

  • DrawImage composable kaldırıldı. Mevcut düzende resim çizmek için ImagePainter'ı veya yer kaplayan bir resim eklemek için SimpleImage'ı kullanın (I595e1, b/149827027)

  • Stack bileşeni, sağdan sola yönü destekler (Ic9e00).

  • AppBarIcon kaldırıldı ve Icon, IconButton ve IconToggleButton eklendi. AppBarIcon'un mevcut kullanımlarını doğrudan IconButton ile değiştirebilirsiniz. Bu durumda, doğru dokunma hedefi kullanılır. Kullanım bilgileri için örneklere, bu bileşenlerle doğrudan kullanabileceğiniz Material Icons için de Simge bölümüne bakın. (I96849)

  • DrawShape composable'ı kaldırıldı. Bunun yerine DrawBackground değiştiricisini kullanın. (I7ceb2)

  • Yalnızca görünür öğeleri oluşturan ve yerleştiren kaydırma listesi bileşeni AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan değişikliklerin tümünü tam olarak ele almaması yer almaktadır. (Ib351b)

  • Özel kaydırma çubukları/listeler oluşturulmasına olanak tanıyan kaydırılabilir bileşen eklendi (I5fd37).

  • Arka planı DrawBackground olarak yeniden adlandırın ve varsayılan olarak ezberlenmesini sağlayın (Ia0bd3)

  • Kutuya dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)

  • Canvas bileşeni eklendi. Bu composable, belirli bir boyutu (kullanıcı tarafından sağlanır) kaplar ve CanvasScope (I0d622) kullanarak çizim yapmanıza olanak tanır.

  • Border değiştiricisini DrawBorder olarak yeniden adlandırın (I8ffcc)

  • Düzen ve çizim ortak işlevlerini birleştirmek için Box bileşeni eklendi. (I6e2a7)

  • Kaydırma çubukları artık yerel Android hızlı kaydırma hareketi davranışını sergiliyor. (I922af, b/147493715)

  • Border Modifier (Id335a) lehine DrawBorder değiştirildi.

  • Modifier.tag, Modifier.testTag ile karışıklığı önlemek için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)

  • ConstraintLayout kılavuzları oluştururken kullanılan yüzde parametresinin adı kesir olarak değiştirildi. (Ida2db)

  • ConstraintLayout engellerinin kenar boşlukları için destek eklendi. (I47ffe)

  • ConstraintLayout'ta RTL desteği düzeltildi. Sağdan sola dil desteği olmayan API'ler eklendi. (I3b1c7)

  • ConstraintLayout için yeni bir DSL eklendi. Daha fazla bilgi için lütfen örnekleri inceleyin. (Icaa9a)

  • @ExperimentalLayout ek açıklaması eklendi. ConstraintLayout, FlowRow ve FlowColumn, API'lerinin değişeceğini belirtmek için artık bu etiketle işaretleniyor. (I412a8)

  • Modifier.padding(InnerPadding) eklendi (I94985, b/157133803)

  • Satır ve sütunda kullanımdan kaldırılan RowAlign ve ColumnAlign kaldırıldı. (If60d4, b/155858731)

  • Desteği sonlandırılan LayoutTag() kaldırıldı. Bunun yerine lütfen Modifier.tag() kullanın. Desteği sonlandırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() kullanın. (If8044)

  • Piksel cinsinden (dinamik) uzaklıkları tanımlamak için kullanılabilecek offsetPx düzen değiştiricisi eklendi. (I5af57)

  • AlignmentLineOffset composable kullanımdan kaldırıldı. Lütfen bunun yerine relativePaddingFrom() değiştiricisini kullanın. CenterAlignmentLine composable'ı kaldırıldı. (I60107)

  • Varsayılan minimum boyut kısıtlamaları düzen değiştiricisi eklendi. Bu değiştirici, gelen ilgili kısıtlamalar belirtilmediğinde (minimum kısıtlamalar için 0, maksimum kısıtlamalar için sonsuz) boyut kısıtlamalarını yalnızca sarmalanmış düzene ayarlar. (I311ea, b/150460257)

  • Kapsayıcı kaldırıldı. Bunun yerine Box'ı kullanın (Ibbc2b, b/151407926)

  • Kullanımdan kaldırılan LayoutWidth/Height/Size değiştiricileri kaldırıldı. (Ib0bc1)

  • Offset değiştiricisi için varsayılan parametre değerleri eklendi. (I37f06)

  • Simetrik dolgu değiştiricisi eklendi. (I39840)

  • Desteği sonlandırılan LayoutAspectRatio değiştiricisi kaldırıldı. (I65a74)

  • Desteği sonlandırılan LayoutAlign değiştiricileri kaldırıldı. (I10877)

  • Sarmalanmış düzenin karşı eksen kısıtlamaları olmadan ölçülmesine neden olan genişlik ve yükseklik değiştiricilerindeki bir hata düzeltildi. (I210b8, b/154797971)

  • Satır ve Sütun'a sırasıyla verticalGravity ve horizontalGravity parametreleri eklendi. (I7dc5a)

  • wrapContentWidth ve wrapContentHeight, herhangi bir hizalama yerine dikey veya yatay hizalama bekleyecek şekilde güncellendi. Yer çekimi değiştiricisi, dikey veya yatay hizalamayı kabul edecek şekilde güncellendi. Satır, sütun ve yığın, özel sürekli hizalamaları destekleyecek şekilde güncellendi. (Ib0728)

  • Made Alignment, rastgele değerlerle örneklenebilir hale getirildi. 1D hizalamalar eklendi. (Ia0c05)

  • EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Materyal düğmelerinin innerPadding parametresi padding olarak yeniden adlandırıldı. (I66165)

  • alignToSiblings artık Placeable yerine Measured kabul ediyor. (I5788d)

  • Boyutlandırma için doğal ölçülere değiştiriciler eklendi ve bu amaca hizmet eden bileşenlerin kullanımı sonlandırıldı. (I8295d)

  • ConstraintLayout'un alt öğelerinin boyutlarını özelleştirme desteği eklendi (Idb1a5).

  • Desteği sonlandırılan Wrap ve Center composable'ları kaldırıldı. (I29e23)

  • Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi. LayoutModifier (If32ac) desteği sonlandırıldı.

  • RowScope ve ColumnScope üyelerine artık satır ve sütun dışında da erişilebilir. (I3a641)

  • Kapsayıcı desteği sonlandırıldı. Bunun yerine Box'ı kullanın. (I675ce, b/151407926)

  • Düzen konumunu kaydırmak için LayoutOffset değiştiricisi eklendi (I0b8a3)

  • Compose düzeninde sağdan sola dil desteği (Ia5519)

  • LayoutAlign, artık mevcut alanı doldurmayacak şekilde güncellendi (I2b14f).

  • Değiştirici lehine AspectRatio composable'ı kaldırıldı. Kullanımdan kaldırılan FlexColumn, FlexRow composable'ları ve Spacing değiştiricisi silindi (Iec8a7).

  • Satır ve sütun için LayoutInflexible değiştiricisi kaldırıldı (I0d820).

  • TextField için seçimi değiştirmek üzere sürükleyerek seçim tutma yerlerini uygulayın. (I27032)

  • TextField seçiminde LongPressAndDrag'i uygular. (I17919)

Hata Düzeltmeleri

  • FocusModifier, Modifier.focus, Modifier.focusRequester ve Modifier.focusObserver lehine kullanımdan kaldırıldı. FocusState ve FocusDetailedState, FocusState2 (I46919, b/160822875, b/160922136) lehine kullanımdan kaldırıldı.
  • runOnIdleCompose, runOnIdle olarak yeniden adlandırıldı (I83607)
  • Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
  • Daha önce desteği sonlandırılan Modifier.ripple kaldırıldı. Clickable, artık varsayılan gösterge olarak dalgalanma efektini kullanıyor (uygulamanızda MaterialTheme {} ayarlanmışsa). Bu nedenle, çoğu durumda yalnızca clickable'ı kullanabilir ve dalgalanma efektini ücretsiz olarak alabilirsiniz. Dalgalanmanın rengini, boyutunu veya sınırlı parametresini özelleştirmeniz gerekiyorsa RippleIndication'ı manuel olarak oluşturabilir ve bunu tıklanabilir öğeye gösterge parametresi olarak iletebilirsiniz. (I663b2, b/155375067)
  • Eski boyut testi API'leri kaldırıldı. (Iba0a0)
  • LayoutNode deneysel API'si yapıldı (I4f2e9)
  • Kaydırma yönü kilitlemenin 1. sürümü, Compose'da uygulanır. (I1ce7a, b/150289741)
  • Pop-up'lar, iletişim kutuları ve menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)
  • Layout() işlevinin ölçü bloğundan düzen yönü parametresi kaldırıldı. Ancak düzen yönü, geri çağırma işlevi içinde ölçü kapsamı nesnesi (Ic7d9d) aracılığıyla kullanılabilir.
  • AbsoluteArrangement ekleyin: Satırın içindeki alt öğelerin, RTL'de otomatik yansıtma olmadan düzenlenmesine olanak tanır (I3a1df).
  • @Untracked notu kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)
  • Bu değişiklikten önce, bir @Composable işlevinin içindeki oluşturuculara yapılan çağrılar, (I5205a, b/158123804) varsa Compose derleyici eklentisi tarafından önemsiz olmayan bir şekilde engelleniyordu.
  • Activity veya Fragment'te olduğu gibi ViewModel oluşturmaya ya da önceden oluşturulmuş ViewModel'i almaya olanak tanıyan viewModel() composable'ı ekleyin (I5fdd1).
  • Radius sınıfı, satır içi sınıf olacak şekilde yeniden düzenlendi. Y ekseni boyunca yarıçapın zorunlu x ekseni yarıçap parametresine uyması için varsayılan parametreye sahip işlev oluşturucu lehine, eşlik eden öğe oluşturma yöntemleri kaldırıldı.

    DrawScope.drawRoundRect, x ve y eksenleri boyunca yarıçap için 2 ayrı kayan nokta değeri yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi (I46d1b).

  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasını sağlamak amacıyla büyük bir yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)

  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I086f4).

  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Id3434).

  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a).

  • TextField'ın imleci yanıp sönme animasyonuna sahip (Id10a7)

  • Kısmi hareketler artık GestureToken (Id7ae5) iletilmesini gerektirmiyor.

  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I57bff).

  • Yüksek düzeyli bileşenlerin kullanılmasına izin vermek için Modifier.semantics kullanımdan kaldırılma işlemi geri alındı. (I4cfdc)

  • AnnotatedString.Builder.addAnnotationString'i addStringAnnotation olarak yeniden adlandırın. (I5059e)

  • Alignment API güncellendi ve mutlak hizalama (RTL bağlamında otomatik olarak yansıtılmayan) desteği eklendi (I38cd3).

  • Layout ve LayoutModifier alt öğeleri farklı bir düzen yönüyle ölçülebilir. (Ibd731)

  • Temel ImageAsset'in bir alt bölümünün çizilmesini desteklemek için ImagePainter'a ek isteğe bağlı rect parametresi ekleyin (I0ea9e).

  • Öğeler kaldırılırken AdapterList'te kilitlenme sorunu düzeltildi (Ic64b0, b/153195921).

  • Etkinlik.setContent { } bloğuna yerleştirdiğiniz ilk düzeni ölçme şeklimizi değiştirdik. Daha önce tüm etkinlik ekranını doldurmaya zorlanan bu öğe, artık düzeninizi bir Stack'in içine yerleştirmişsiniz gibi davranıyor: Ekrandan daha küçük olabilir ve ekranın sol üst kısmında konumlandırılır. Eski davranışı kullanmak istiyorsanız düzeniniz için Modifier.fillMaxSize() uygulayabilirsiniz. (Ie88a7, b/153453714)

  • ui-text-compose modülünün adı ui-text olarak değiştirildi. ui-text artık CoreText ve CoreTextField composable'larını içeriyor (Ib7d47).

  • ui-text modülünün adı ui-text-core olarak değiştirildi (I57dec).

  • ui-framework/CoreText ve CoreTextField composable'ları ui-text-compose altına taşındı. Projenize ui-text-compose'u eklemek isteyebilirsiniz. (I32042)

  • runOnIdleCompose ve runOnUiThread artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)

  • [Mutable]State özellik temsilcisi operatörleri, Kotlin 1.4 özellik temsilcisi optimizasyonlarını desteklemek için uzantılara taşındı. Arayanların by state { ... } veya by mutableStateOf(...) kullanmaya devam etmek için içe aktarma işlemleri eklemesi gerekir. (I5312c)

  • DrawLayerModifier ve drawLayer() artık varsayılan olarak clipToBounds ve clipToOutline'ı false olarak ayarlar. (I0eb8b, b/152810850)

  • LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)

  • Kullanımdan kaldırılan Center composable'ı. Bu, LayoutSize.Fill + LayoutAlign.Center değiştiricisiyle veya uygun değiştiricilerin uygulandığı Box ya da Stack composable'larından biriyle değiştirilmelidir (Idf5e0).

  • LayoutFlexible, LayoutWeight olarak yeniden adlandırıldı. Sıkı parametrenin adı doldurma olarak değiştirildi. (If4738)

  • DrawVector, normal bir composable işlevden, vektörü bir düzenin arka planı olarak çizecek bir Modifier drawVector() döndürecek şekilde değiştirildi. (I7b8e0)

  • Clip composable işlevini drawClip() değiştiricisiyle değiştirin. DrawClipToBounds, yalnızca dikdörtgen şekliyle katman sınırlarını kırpmanız gerektiğinde kullanabileceğiniz kullanışlı bir değiştiricidir. (If28eb)

  • DrawShadow composable işlevi, drawShadow() değiştiricisiyle değiştirildi. Gölgeler artık LayerModifier'ın bir parçası olarak çiziliyor. (I0317a)

  • androidx.compose.ViewComposer, androidx.ui.node.UiComposer'a taşındı. androidx.compose.Emittable kaldırıldı. ComponentNode ile gereksizdi. androidx.compose.ViewAdapters kaldırıldı. Bu özellik artık desteklenen bir kullanım alanı değildir. Compose.composeInto desteği sonlandırıldı. Bunun yerine setContent veya setViewContent kullanın. Compose.disposeComposition desteği sonlandırıldı. Bunun yerine setContent tarafından döndürülen Composition üzerinde dispose yöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto konumuna taşındı. ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı. ComponentNode#emitRemoveAt, ComponentNode#removeAt olarak yeniden adlandırıldı. ComponentNode#emitMode, ComponentNode#move olarak yeniden adlandırıldı (Idef00).

  • Desteği sonlandırılan Wrap composable'ı. LayoutAlign değiştiricisi veya Stack composable (Ib237f) ile değiştirilebilir.

  • Yerleşim yönünün üst yerleşim düğümünden alt öğelere yayılması sağlandı. Düzen yönü değiştiricisi eklendi. (I3d955)

  • Yeni oluşturulan Modifier, birden fazla Modifier örneğinde paylaşılabilecek orijinal Painter'a referans içerdiğinden Painter.toModifier işlevini Painter.asModifier olarak yeniden adlandırın (I7195b).

  • LayoutPadding değiştiricisinde sağdan sola yönü destekleme (I9e8da)

  • Yoğunluk ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current kullanabilirsiniz. withDensity(density) yerine yalnızca with(density) kullanılmalıdır (I11cb1).

  • ValueHolder sınıfı kaldırıldı. Alt sınıfların değer güncellemesini izleyebilmesi için animasyon değeri alanını soyut hale getirmek üzere AnimatedValue ve AnimatedFloat sınıfları yeniden yapılandırıldı.

    • AnimatedValue, AnimatedFloat vb. için model sınıfları eklendi.
    • Değerler arasında animasyon oluşturmak için yeni bir hafif @Composable API'si eklendi.
    • (I79530)
  • Ambients API'de zarar veren değişiklikler yapıldı. Ayrıntılar için günlük ve Ambient<T> belgelerine bakın (I4c7ee, b/143769776)

  • Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi Int konumları artık boş değer içermiyor. Sorgulanan hizalama çizgisi eksikse AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)

  • Yeniden oluşturma işlemlerinde kilitlenmeye neden olan ConstraintLayout hatası düzeltildi. (Ibee5a, b/158164341)

  • WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702).

  • LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)

  • Layout ve LayoutModifier2'deki Intrinsic ölçüm işlevleri artık IntrinsicMeasureScope alıcısına sahip. Bu alıcı, örtülü olarak yayılmış düzen yönüyle Intrinsic sorgu API'si sağlar. (Id9945)

  • LayoutDirectionAmbient'ın desteği sonlandırıldı. Yerel ayar tarafından tanımlanan düzen yönünü okumak için ConfigurationAmbient'ta (I851b1) localeLayoutDirection'ı kullanın.

  • LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)

  • ParentData composable'ın desteği sonlandırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya yalnızca düzen alt öğelerini ölçü bloğunda tanımak için etiketlemeniz gerekiyorsa LayoutTag değiştiricisini kullanmanız gerekir. (I51368, b/150953183)

  • OnPositioned ve OnChildPositioned composable işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)

  • LayoutPadding'de negatif dolguya izin verilmez. Negatif konum telafileri için bunun yerine LayoutOffset kullanılmalıdır. (Ifb5b1)

  • WithConstraints, LayoutDirection parametresini aldı (I6d6f7)

  • ComposeFlags.COMPOSER_PARAM işaretini true olarak güncelledik. Bu değişiklik, Compose eklentisinin kod oluşturma stratejisini etkileyecek. Bu durum, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün bir şekilde yönetebilmesi için sonraki @Composable çağrılarına iletilir. Bu, önemli bir ikili uyumluluğu bozan değişikliktir ancak Compose'un izin verilen tüm kullanımlarında kaynak düzeyinde uyumluluğu korur. (I7971c)

  • LayoutCoordinates, sağlananAlignmentLines'ı Map yerine Set olacak şekilde değiştirildi ve LayoutCoordinates'in değer almak için get() operatörünü uygulaması sağlandı. Bu sayede, her değiştirici için yeni bir koleksiyon oluşturmaya gerek kalmadan değiştiricilerin, kümenin bir veya daha fazla değerini değiştirmesi kolaylaşır. (I0245a)

  • LayoutCoordinates artık bir konum özelliğine sahip değil. LayoutModifiers, döndürme veya ölçekleme göz önünde bulundurulduğunda konum özelliği anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'den diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() işlevlerini kullanmalıdır.

    LayoutCoordinates, boyut özelliği için PxSize yerine IntPxSize kullanıyor. Düzenlerde tam sayı piksel boyutları kullanılır. Bu nedenle, tüm düzen boyutlarında kayan nokta değerleri değil, tam sayılar kullanılmalıdır. (I9367b)

  • Kısıtlamaların API yüzeyinde iyileştirmeler (I0fd15)

  • TextDirection.Content eklendi (I48f36)

  • Kopyalama, kesme ve yapıştırma işlemlerinin düzgün şekilde gösterilmesi için araç çubuğu menüsünü ayarlayın. (Id3955)

  • TextField seçimi için FloatingToolbar eklendi. (Ie8b07)

  • TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)

  • TextDirection, ResolvedTextDirection (I3ff38) olarak yeniden adlandırıldı.

  • TextField seçiminde HapticFeedback'i etkinleştirin. (I58050)

  • TextField Selection'a Kopyala, Kes ve Yapıştır yöntemleri eklendi. (Idb70b)

  • TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics kullanın (I15ff0, b/158841414)

  • Locale ve LocaleList için paket adı androidx.ui.text yerine androidx.ui.intl olarak değiştirildi (I8132c)

  • API değişikliği: AnnotatedString(builder: Builder), annotatedString(builder: Builder) olarak yeniden adlandırıldı. (Ia6377)

  • API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)

  • Metinle ilgili işlemler için araç çubuğu eklendi. (I49d53)

  • Yeni LifecycleOwnerAmbient artık kullanılabilir. Artık Compose kullanıcı arayüzü ile kullandığınız bir Activity, androidx.activity.ComponentActivity'yi (veya AppCompatActivity'yi) genişletmelidir. android.app.Activity'deki setContent artık desteği sonlandırılmıştır (Idb25a, b/153141084).

  • ui-android-text paket adı (androidx.text), androidx politikasına uygun olması için androidx.ui.text.platform ile değiştirildi. (I42711)