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ü
13 Kasım 2024 1.7.5 - - 1.8.0-alpha06

Yapı

Oluşturma, androidx içindeki 7 Maven grup kimliğinin birleşimidir. Her grup, kendi sürüm notlarına sahip hedeflenen bir işlev alt kümesi içerir.

Bu tabloda, gruplar ve her sürüm notları grubunun bağlantıları açıklanmaktadır.

GrupAçıklama
compose.animationKullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyon oluşturabilirler.
compose.compiler@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisi ile 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'da açıklananlarla eşleşen bileşenler sağlamak için tasarlanmış Compose'un üst düzey giriş noktasıdır.
compose.material3Materyal Tasarım'ın bir sonraki aşaması olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3, güncellenmiş temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içerir ve yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır.
compose.runtimeCompose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedeflemesi gereken temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş dahil olmak üzere cihazla etkileşimde bulunmak için gereken oluşturma kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları beyan etme

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

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

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ştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

1.8 sürümü

Sürüm 1.8.0-alpha06

13 Kasım 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha06 yayınlanır. 1.8.0-alpha06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • stylusHoverIcon değiştiricisi ekler. (Iff20a, b/331289114)
  • AnchoredDraggableState'nin confirmValueChange özelliği kullanımdan kaldırıldı. Durum değişikliklerini veto etmek yerine, izin verilmeyen ankrajlar etkin ankraj grubunda 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, sağlanan aşırı kaydırma efektinin sırasıyla etkinlikleri çizmeyen / işlemeyen sarmalanmış bir örneğini oluşturur. Bu sayede, aşırı kaydırma, etkinlikleri dağıtan bileşenden ayrı bir bileşende oluşturulabilir. Örneğin, aşırı kaydırma özelliğinin bir gecikmeli listede çizilmesini devre dışı bırakıp aşırı kaydırma özelliğini üstte veya başka bir yerde ayrı olarak çizebilirsiniz. (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 aşırı kaydırma uygulamasının parametrelerini örneklemek / özelleştirmek için rememberPlatformOverscrollFactory eklenir. Aşırı kaydırma özelliğini devre dışı bırakmak için LocalOverscrollConfiguration provides null yerine LocalOverscrollFactory provides null kullanın. Parıltı rengini / dolguyu 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 mülkü, diğer API'lerle tutarlı olacak şekilde node: DelegatableNode olarak değiştirildi. (Ic0b46, b/255554340)
  • Deneysel GlobalAssertions API kaldırıldı. Amaçlanan kullanımı erişilebilirlik kontrolleri yapmaktı. Bu amaç için enableAccessibilityChecks() bölümüne bakın. (I59322)

Sürüm 1.8.0-alpha05

30 Ekim 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha05 yayınlanır. 1.8.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Metinleri otomatik olarak boyutlandırma desteği. En sevdiğiniz metin bileşenine (ör. BasicText) bir AutoSize örneği (ör. AutoSize.StepBased) iletin ve metin boyutunuzun mevcut alana göre nasıl ayarlandığını görün. (Ice7e0, b/139320827)
  • Bir hiyerarşi içinde aşırı kaydırma yapılandırmasına izin vermek için OverscrollFactory ve LocalOverscrollFactory API'lerini ekler. LocalOverscrollFactory aracılığıyla sağlanan değer, varsayılan olarak OverscrollEffect oluşturmak için kullanılır. Mevcut fabrikadan bir efekt oluşturmak ve hatırlamak için rememberOverscrollEffect() simgesini kullanın. (I51ca4, b/255554340)

API Değişiklikleri

  • Otomatik doldurma özelliğinin başarılı doldurma vurgusunun rengini değiştirmek için kullanılabilen CompositionLocal özelliğini kullanıma sunduk. (I32092)
  • ScrollableDefaults.overscrollEffect kaldırıldı. Bunun yerine rememberOverscrollEffect kullanmalısınız. 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ğunda ince ayar yapmak için kullanılabilecek yeni bir AutofillManager arayüzü ve Otomatik Doldurma'nın bu yeni sürümünü etkinleştirmek için bir isSemanticAutofillEnabled işaretçisi kullanıma sunuldu. (I9d484)
  • CombinedClickableNode kaldırılır. Bu deneysel API, performans çalışmalarının engellemesini kaldırmak için geçici olarak kullanıma sunuldu ancak artık gerekli değildir. Bunun yerine, diğer değiştirici API'lerinde olduğu gibi doğrudan Modifier.combinedClickable kullanmalısınız. (I4b658)
  • Özel OverscrollEffect belirtme desteğiyle horizontalScroll, verticalScroll, LazyColumn, LazyRow, LazyHorizontalGrid, LazyVerticalGrid, LazyHorizontalStaggeredGrid, LazyVerticalStaggeredGrid, HorizontalPager ve VerticalPager işlevlerine aşırı yükleme ekler. Sağlanan OverscrollEffect, etkinlikleri alır ve bu bileşenlerin sınırları içinde oluşturulur. Aynı OverscrollEffect öğesinin iki kez çizilmesinin desteklenmediğini unutmayın. Bu nedenle, bu bileşenlerden birine sağlanan aynı OverscrollEffect öğesini Modifier.overscroll ile ayrı olarak çizemezsiniz. Kaydırma çubuğunu bu bileşenlerin sınırları dışında ç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 yayınlanır. 1.8.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Bu değerler değiştiğinde düğüm durumunun güncellenmesine izin vermek için DelegatableNode#onDensityChange ve DelegatableNode#onLayoutDirectionChange geri çağırma işlevleri ekler. (I04f3e, b/340662451)
  • Paragraf ve ParagraphIntrinsics, AnnotatedString'a uygulanan tüm ek açıklamaların listesini alır. Daha önce yalnızca SpanStyles listesini alıyordu. (I12f80)
  • Tek bir işaretçi girişi değiştiricisinin dokunma sınırlarını genişletmek için kullanılabilen PointerInputModifierNode#touchBoundsExpansion özelliği kullanıma sunuldu. (Iccf02, b/335339283)

Hata Düzeltmeleri

  • AnchoredDraggableDefaults.flingBehavior işlevine iletilen konumsal eşiklerin bazı senaryolarda doğru şekilde dikkate alınmamasına neden olan hata düzeltildi. (Ifdf0d, b/367660226)
  • Devam eden bir deneme sırasında düğüm ağacından kaldırılan iç içe yerleştirilmiş kaydırılabilir öğeler için bir düzeltme yapıldı. Artık bu düğümler fırlatmayı iptal edecek ve kalan hızla onPostFling etkinliğini doğru şekilde gönderecektir. Ayrıca, gerileme durumunda davranışı kontrol etmek için NewNestedScrollFlingDispatchingEnabled işaretini de kullanıma sunuyoruz. İşaret, beta sürümünden önce kaldırılacaktır. (I05c37, b/371168883)
  • Modifier.anchoredDraggable işlevine iletilen OverscrollEffects işlevinin 1D yerine 2D delta alması sorunu düzeltildi. (Ie52c0)

Sürüm 1.8.0-alpha03

2 Ekim 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha03 yayınlanır. 1.8.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Kotlin sürümü 1.9'a güncellendi (I1a14c)
  • DraggableAddDownEventFixEnabled işareti (I848d5) kullanıma sunuldu
  • Erişim hizmetleri için a11y hizmetlerindeki liste davranışını taklit etmek üzere Bant adlı yeni bir Anlambilim rolü kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
  • BasicText bileşeninden örtülü graphicsLayer değiştirici kaldırıldı. Eski davranışa geri dönebilmek için deneysel ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabled işareti eklendi. (Ie478d)
  • Hiyerarşide yer alan alt öğelerin, ebeveynler onları consumeWindowInsets() olmadan hizaladığında bile insetsPadding kullanmasına izin vermek için Modifier.recalculateWindowInsets() eklendi. (I7f9e4)

Hata Düzeltmeleri

  • detectDragGestures, sürüklenebilir ve kaydırılabilir öğelerde hareketle öğe seçme özelliğini uygulayın. Artık, sürüklenebilir bir çocuk bir hareketi bıraktığında ebeveyn bu hareketi alabilir. Bu sayede daha kesintisiz ve entegre bir hareket yönetimi sağlanır. (Ic88fe)
  • Kaydırılabilir öğelerdeki fırlatma iptal davranışını güncelleme. Artık kaydırılabilir bir öğe fırlatıldığında ve sınırlara çarptığında, fırlatma işlemini sürdürmek yerine fırlatma hızını zincirdeki bir sonraki kaydırılabilir öğeye doğru şekilde iletir. (I9326a)

Sürüm 1.8.0-alpha02

18 Eylül 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha02 yayınlanır. 1.8.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Artık TextOverflow.StartEllipsis ve TextOverflow.MiddleEllipsis ile tek satırlık metnin satırının başına veya ortasına üç nokta yerleştirebilirsiniz (I38913, b/185418980)

Sürüm 1.8.0-alpha01

4 Eylül 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha01 yayınlanır. 1.8.0-alpha01 sürümü bu taahhütleri içerir.

1.7 sürümü

Sürüm 1.7.5

30 Ekim 2024

androidx.compose.foundation:foundation-*:1.7.5 yayınlanır. 1.7.5 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Sabitlenmiş öğelerin içerik dolgu alanında iki kez alt derlenmediğinden emin olun. (Ic6224)

Sürüm 1.7.4

16 Ekim 2024

androidx.compose.foundation:foundation-*:1.7.4 yayınlanır. 1.7.4 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.7.3

2 Ekim 2024

androidx.compose.foundation:foundation-*:1.7.3 yayınlanır. 1.7.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

1.7.2 sürümü

18 Eylül 2024

androidx.compose.foundation:foundation-*:1.7.2 yayınlanır. 1.7.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Kaydırma işleminin normalden daha yavaş görünmesine neden olan, aşağı olayların eksik olduğu sürüklenebilen öğeyle ilgili sorun düzeltildi.

1.7.1 sürümü

10 Eylül 2024

  • Android yapılarında değişiklik yapılmamıştır. -desktop yapı kaldırıldı ve -jvmStubs ile -linuxx64Stubs yapıları eklendi. Bu hedeflerin hiçbiri kullanılmak için tasarlanmamıştır. Bunlar, Jetbrains Compose çalışmalarına yardımcı olan yer tutuculardır.

1.7.0 sürümü

4 Eylül 2024

androidx.compose.foundation:foundation-*:1.7.0 yayınlanır. 1.7.0 sürümü bu taahhütleri içerir.

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

  • Modifier.clickable, Modifier.focusable, Modifier.indication, Modifier.scrollable ve Modifier.draggable'in performansı önemli ölçüde iyileştirildi. Bu çalışma kapsamında, şirket içi değişikliklere ek olarak aşağıdaki API değişiklikleri de yapıldı
    • Yeni bir Indication API (IndicationNodeFactory) eklendi. Bu, önceki (artık kullanımdan kaldırılmış) rememberUpdatedInstance API'ye kıyasla daha yüksek performanslı gösterge uygulamalarına yol açar. Taşıma bilgileri için developer.android.com adresine bakın.
    • clickable / combinedClickable / selectable / toggleable artık boş değer atanabilen MutableInteractionSource parametresini kabul ediyor. Boşsa ve sağlanan gösterge bir IndicationNodeFactory ise gösterge yalnızca gerektiğinde yavaşça oluşturulabilir. Bu da performansı artırır. MutableInteractionSource öğesini kaldırmayıp kullanmıyorsanız remember { MutableInteractionSource() } yerine null değerini iletmeniz önerilir.
    • Indication#rememberUpdatedInstance desteği sonlandırıldı. Kaçınılmaz bir şekilde yüksek performans cezasına sahiptir ve diğer optimizasyonları engeller. Bunun yerine yeni IndicationNodeFactory API'yi kullanmalısınız.
  • TextFieldState kullanan BasicTextField artık kararlı durumdadır ve tüm çağrı sitelerinin BasicTextField(value, onValueChange)'ten BasicTextField(TextFieldState)'e geçiş yapmaya başlamasını öneririz.
  • ClickableText desteği sonlandırıldı. Metninize tıklanabilir bağlantılar eklemek için AnnotatedString'inizde yeni LinkAnnotation ek açıklamasıyla birlikte BasicText kullanın. LinkAnnotation, bağlantı durumuna (ör. odaklanmış, fareyle üzerine gelinmiş) göre özel stil oluşturmayı sağlar.
  • MaxLines ve Overflow ile ContextualFlowRow ve Enhanced FlowRow/Column kullanıma sunuluyor. Deneysel FlowRow ve FlowColumn'te yapılan geliştirmeleri duyurmaktan mutluluk duyuyoruz. Artık maxLines ve taşma desteğinin yanı sıra ContextualFlowRow ve ContextualFlowColumn de kullanıma sunuldu. Bu güncelleme, performans açısından en uygun bileşenleri sağlamak için tasarlanmıştır. ContextualFlow*, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmesi kullanan çok sayıda öğe için mükemmeldir. FlowRow ve FlowColumn ise 100'den az öğe içeren küçük öğe grupları için mükemmeldir. Önemli: Çapraz eksen maksimumuna sığmalarından bağımsız olarak tüm öğelerin oluşturulduğu FlowRow veya FlowColumn'teki mevcut davranışı korumak için, ilklendirme sırasında taşma değerini FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin kullanım örneklerini görmek için ContextualFlowRowSample ve FlowRowSample sayfalarını inceleyin. (Ib9135, b/293577082)
  • LazyColumn ve LazyRow'e öğelerin görünmesi ve kaybolması animasyonu desteği eklendi. Daha önce, yerleşim (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyan Modifier.animateItem() adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (I2d7f7, b/150812265)
  • Resmi Android API'si (ScrollCaptureCallback) kullanılarak Oluştur kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı.
  • NestedScroll kaynakları olan sürükle ve fırlat, artık animasyonlar (yan etki) ve fare tekerleği ile klavye (UserInput) içeren bu kaynakların genişletilmiş tanımına uyum sağlamak için UserInput ve SideEffect ile değiştiriliyor.
  • LazyLayout ön besleme istekleri artık acil olarak işaretlenebilir. Bu, bu öğenin sonraki karede gerekli olacağını beklediğimiz ve daha önceden daha fazla çalışma yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f)
  • Android U'dan sonraki cihazlarda ekran kalemiyle el yazısı özelliğini destekleme (I002e4)
  • Çeşitli API'ler kararlı sürüme geçirildi
    • Sayfalayıcılar, sabitleme, pencere içe eklemeleri

Sürüm 1.7.0-rc01

21 Ağustos 2024

androidx.compose.foundation:foundation-*:1.7.0-rc01 yayınlanır. 1.7.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Odaklanabilir (veya tıklanabilir) ve devre dışı bırakılmış bir üst öğenin içinde herhangi bir öğeye odaklanıldığında kilitlenmenin gerçekleştiği bir gerileme düzeltildi. (b/317561689)

Sürüm 1.7.0-beta07

7 Ağustos 2024

androidx.compose.foundation:foundation-*:1.7.0-beta07 yayınlanır. 1.7.0-beta07 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Metin girişiyle ilgili SemanticsNodeInteraction işlevleri performTextReplacement, performTextInput ve performTextClearance artık salt okunur TextFields üzerinde çağrıldığında doğrulama hataları atacaktır. (I4ae8f)
  • Köprülerdeki görsel bir hata düzeltildi. (I23311)
  • contentReceiver değiştiricinin bazı IME'lerle çalışmaması sorunu düzeltildi.
  • Hız oluşturma: Oluşturma kullanıcı arayüzünde ve Foundation'da NaN değerlerinin yayılmasını önler.

Sürüm 1.7.0-beta06

24 Temmuz 2024

androidx.compose.foundation:foundation-*:1.7.0-beta06 yayınlanır. 1.7.0-beta06 sürümü bu taahhütleri içerir.

Sürüm 1.7.0-beta05

10 Temmuz 2024

androidx.compose.foundation:foundation-*:1.7.0-beta05 yayınlanır. 1.7.0-beta05 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • SnapFlingBehavior ve Sayfalayıcı'da Nan değerlerinin işlenmesi için düzeltme.

Sürüm 1.7.0-beta04

26 Haziran 2024

androidx.compose.foundation:foundation-*:1.7.0-beta04 yayınlanır. 1.7.0-beta04 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Çok büyük metin satırlarını (ör.10. 000 karakter) ölçerken kilitlenmelerden kaçının (8157ab)
  • Yeni BasicTextField'te kilitlenmeye neden olan çok büyük metinlerin ölçülmesiyle ilgili sorunu düzeltir (6b7575)
  • Satır/sütun ölçümünde, belirli senaryolarda metin kullanımını bozan bir 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 yayınlanır. 1.7.0-beta03 sürümü bu taahhütleri içerir.

Sürüm 1.7.0-beta02

29 Mayıs 2024

androidx.compose.foundation:foundation-*:1.7.0-beta02 yayınlanır. 1.7.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • LazyLists için mevcut deneysel API'ye benzer şekilde LazyGrids'ün ön getirme davranışını yapılandırmak üzere deneysel bir API ekler. İç içe yerleştirilmiş LazyGrids öğelerinin önceden önbelleğe alınması desteği de buna dahildir. LazyListPrefetchStrategy'e benzer şekilde, uygulamanın varsayılan ayarı her ızgaranın ilk 2 iç içe yerleştirilmiş öğesini önceden almaktır ancak bu, yeni LazyGridPrefetchStrategy(nestedPrefetchItemCount) ve LazyListPrefetchStrategy#onNestedPrefetch API'leri tarafından yapılandırılabilir. (I591c4)
  • SemanticsProperties.Editable, IsEditable olarak yeniden adlandırıldı ve SemanticsPropertyReceiver.editable, isEditable değerine değiştirildi. Özellik artık boole türüne sahip ve her zaman metin alanları tarafından 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ın stilini belirlemek için API'yi güncelleme: TextLinkStyles öğesini TextStyle öğesine taşıdık ve TextDefaults öğesini materyalden kaldırdık (I5477b)

Hata Düzeltmeleri

  • Amacını daha iyi yansıtmak için LayoutCoordinates.introducesFrameOfReference, LayoutCoordinates.introducesMotionFrameOfReference olarak yeniden adlandırıldı. İlgili işlev, bu işarete göre koordinatları hesaplayacak şekilde yeniden adlandırıldı. (I3a330)
  • MarqueeDefaults mülklerinden "Varsayılan" kaldırıldı. (I1d8a0)
  • "Marquee", MarqueeDefaults mülklerinden kaldırıldı. (Iad4f4)
  • TextLinkStyles, TextStyle sınıfından kaldırıldı. Bunun yerine TextLinkStyles, LinkAnntation kurucusunun ve AnnotatedString.fromHtml yönteminin (I90b2b) bir parçasıdır.
  • Sayfalayıcı'nın, sınıra doğru fırlatıldığında sınıra yerleşmişken sıçramasına neden olan hata düzeltildi. (I9f373, b/339171222)
  • BTF2'de artık fareyle seçim yapma hareketleri doğru şekilde çalışıyor. (Ibe8c6)

Harici Katkı

  • "Doğruluğu artırmak için oluşturma/ölçüm süresi hesaplamasını ön beslemeye dayalı içerik türüne göre yapın" (Iea622) sorununu yeniden gönderin
  • Doğruluğu artırmak için oluşturma/ölçüm süresi hesaplamasını ön beslemeye dayalı içerik türüne göre yapın (Ibccb1)
  • WindowInsetsPadding değiştiricileri ortak kaynak grubundan kullanılabilir hale getirme (I070b2)

Sürüm 1.7.0-beta01

14 Mayıs 2024

androidx.compose.foundation:foundation-*:1.7.0-beta01 yayınlanır. 1.7.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • KeyboardOptions.shouldShowKeyboardOnFocus özelliği, ikili uyumluluk için desteği sonlandırılmış ve gizli olarak tekrar eklendi. (I15cfe)
  • Modifier.anchoredDraggable artık RTL düzeninde kullanıldığında yatay yönde bileşenler için varsayılan olarak sürükleme deltalarını tersine çeviriyor. (I3c6d9)
  • AnnotatedString.hasEqualsAnnotations artık hasEqualAnnotations. (I685c0)
  • Metinde Materyal temalı bağlantılar almak için API güncellendi. Özellikle, temalı LinkAnnotations oluşturmak ve temalı bağlantılarla HTML'yi ayrıştırmak için TextDefaults'ten yöntemler kaldırıldı. Bunun yerine, bağlantılara stil uygulamak için metin bileşenine parametre olarak TextLinkStyles sınıfı eklendi. (I31b93)
  • onDragStarted ve onDragStopped, askıya alınmayan geri çağırmalarla değiştirildi. (I59de8)

Hata Düzeltmeleri

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

Sürüm 1.7.0-alpha08

1 Mayıs 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha08 yayınlanır. 1.7.0-alpha08 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Kesme, kopyalama, yapıştırma ve tümünü seçme işlemlerine yönelik öğeler içeren sağ tıklama içerik menüsü BasicTextField ve SelectionContainer'e eklendi. (If8c93, Ia2b49, I6f268)

API Değişiklikleri

  • LazyLayout ön besleme istekleri artık acil olarak işaretlenebilir. Bu, bu öğenin sonraki karede gerekli olacağını beklediğimiz ve daha önceden daha fazla çalışma yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f)
  • isPositionedByParentWithDirectManipulation, introducesFrameOfReference olarak yeniden adlandırıldı. Artık bunun ters etki yarattığını unutmayın. Yani varsayılan olarak çoğu LayoutCoordinates bir referans çerçevesi sunar ve yalnızca doğrudan müdahaleye tabi tutulduğunda mülk yanlış olur. Konum için yalnızca referans çerçevesi sunan öğelerle sorgu yapmak istiyorsanız positionInLocalFrameOfReference(...) değerini kullanın. Veya LookaheadScope'dan positionInLocalLookaheadFrameOfReference. (Ifc5f7)
  • onClicked, LinkInteractionListener içinde onClick olarak yeniden adlandırıldı (Iaa35c)
  • API konseyi geri bildirimine göre getScrollViewportLength için işlem lambdasını değiştirin. (Ibc74a)
  • Ekran kalemi el yazısı yetkilendirme API'leri yeniden adlandırıldı. (Ica45f, b/327271923)
  • TextInclusionStrategy.isInsideisIncluded olarak yeniden adlandırın. Paragraph/MultiParagraph#getRangeForRect() döndürme türünü boş değer kabul etmeyen bir tür hâle getirin. (I51f26)

Hata Düzeltmeleri

  • SelectionContainer'teki tüm metin bağlam menülerine "Tümünü seç" eklendi. (Ib750e, b/240143283)
  • reverseScrolling=true ile kaydırılabilir kapsayıcılar için uzun ekran görüntüsü alma sorunu düzeltildi. (I7c59c)
  • Eyaletin sınırlarına yaklaşıldığında AnchoredDraggableState'nin currentValue değerinin değişmesi sorunu düzeltildi. (Iea30b, b/333846848)

Harici Katkı

  • Sorumluluklarını daha iyi yansıtması için PrefetchExecutor -> PrefetchScheduler olarak yeniden adlandırıldı. (Ib9154)
  • İç içe yerleştirilmiş LazyLists'lerde (ör. iç içe yerleştirilmiş LazyRows'leri oluşturan bir LazyColumn) öğelerin önceden getirilmesi için destek eklendi. Bu değişikliğin, bu LazyLists'lerde kaydırma sırasında kare atlama sayısını azaltması bekleniyor. Varsayılan uygulama, ilk 2 iç içe yerleştirilmiş öğeyi önceden almaktır ancak bu davranış yeni LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) ve LazyListPrefetchStrategy#onNestedPrefetch API'leri tarafından kontrol edilebilir. (I51952)

Sürüm 1.7.0-alpha07

17 Nisan 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha07 yayınlanır. 1.7.0-alpha07 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Bağlantılara MaterialTheme uygulayan LinkAnnotation oluşturma ve HTML etiketli dizeyi ayrıştırma yöntemleri içeren bir TextDefaults nesnesi eklendi. (I98532, b/139312671)
  • Öğelerin görünmesi ve kaybolması için animasyon desteği LazyVerticalGrid ve LazyHorizontalGrid'e eklendi. Daha önce, yerleşim (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyan Modifier.animateItem() adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (Ib7d12, b/330510929)
  • LazyVerticalStaggeredGrid ve LazyHorizontalStaggeredGrid'e öğelerin görünmesi ve kaybolması animasyonu desteği eklendi. Daha önce, yerleşim (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyan Modifier.animateItem() adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (I69bc9, b/330511290)

API Değişiklikleri

  • ContextMenuColors ve ilişkili LocalContextMenuTheme ProvidableCompositionLocal ekler. Metin alanlarında ve seçilebilir metinlerde içerik menüsünün renkleri, yerel kompozisyon sağlanarak değiştirilebilir. (Ifa154)
  • Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelinen ve odaklanan stil seçeneği de aldı. (I5f864, b/139312671)
  • El yazısı hareketleri için ViewConfiguration.HandwritingGestureLineMargin'ü tanıtın. BasicTextField için el yazısı hareketini destekleyin. (Ie6e13, b/325660505)
  • İlgili API yüzeyinin geri kalanını stabilize etmeyi tamamlayacak zamanımız olmadığı için 1.7 sürümü için DelegatableNode.scrollIntoView kaldırıldı. Bu işlev 1.8'de yeniden kullanıma sunulacaktır (I6cf61, b/333421581, b/332900232)
  • Artık, Placeable.PlacementScope.withDirectManipulationPlacement bağımsız değişkenini kullanarak çocuklarını yerleştiren üst düzenlerin belirlediği ofseti hariç tutmak için düzen koordinatlarını sorgularken excludeDirectManipulationOffset bağımsız değişkenini kullanabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir düzen artık bunları withDirectManipulationPlacement (varsayılan olarak uygulanan Kaydırma gibi) kullanarak yerleştirebilir. Bu sayede approachLayout tabanlı animasyonlar daha sezgisel hale gelir. Artık animasyon yaklaşımına karar verirken hangi ofsetin animasyonlu olacağını ve nelerin doğrudan uygulanacağını ayırt etme fırsatı elde edersiniz. (I60ec7)
  • LazyStaggeredGrid için requestScrollToItem'ü tanıtın. Müşteri artık her ölçüm geçişinde requestScrollToItem çağrısı yaparak anahtara dayalı dizini korumayı devre dışı bırakabilir. requestScrollToItem çağrılmadığı sürece bu, mevcut davranışı hiçbir şekilde değiştirmez. (I63983)
  • Sayfa ayırıcıda requestScrollToPage'ü tanıtın. Müşteri artık her ölçüm geçişinde requestScrollToPage çağrısı yaparak anahtara dayalı dizini korumayı devre dışı bırakabilir. requestScrollToPage çağrılmadığı sürece bu, mevcut davranışı hiçbir şekilde değiştirmez. (Ic4213)
  • LazyGrids için requestScrollToItem özelliği kullanıma sunuldu. Müşteri artık her ölçüm geçişinde requestScrollToItem çağrısı yaparak anahtara dayalı dizini korumayı devre dışı bırakabilir. requestScrollToItem çağrılmadığı sürece bu, mevcut davranışı hiçbir şekilde değiştirmez. (I0a7a0)
  • ClickableText desteği sonlandırıldı. Metne bağlantı eklemek için bağlantınıza karşılık gelen bir LinkAnnotation içeren bir AnnotatedString oluşturun ve bu AnnotatedString'yi Text bileşenine iletin (I34d4b, b/323346994)
  • UrlAnnotation desteği sonlandırıldı. Bunun yerine LinkAnnotation.Url kullanın. Materyal temaları kullanıyorsanız TextDefaults nesnesini kullanarak notu, Materyal temaları uygulanmış şekilde oluşturun (I8d180, b/323346545)
  • String.parseAsHtml, AnnotatedString.Companion.fromHtml olarak yeniden adlandırıldı (I43dcd)
  • parseAsHtml yöntemine stil 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 ek açıklamaya iletir. (I7c977)
  • LinkAnnotation artık duruma dayalı stillendirme bağımsız değişkenlerini ve bir LinkInteractionListener alır. Köprü oluşturmak için bu ek açıklamayı AnnotatedString içine ekleyin. focusedState ve/veya hoveredState parametrelerini ileterek, odaklandığında ve/veya fareyle ü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 işareti kaldırıldı. (I28648, b/329128246)
  • LazyColumn artık uzun ekran görüntülerinde yapışkan başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)
  • Yeni BasicTextField ile kullanıma sunulan deneysel API'lerin çoğu kararlı hale getirildi. (I714e2)
  • İçerikleri karartırken hangi karakterin kullanılacağını kontrol eden textObfuscationCharacter parametresi BasicSecureTextField işlevine eklendi. (I0588b)
  • NestedScroll kaynaklarının sürükleme ve fırlatma işlemleri, artık animasyonlar (yan etki), fare tekerleği ve klavye (UserInput) içeren bu kaynakların genişletilmiş 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'ü tanıtın. (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 kabul etmiyor. Boş bir yerel ayar listesi göndermek istiyorsanız lütfen LocaleList.Empty değerini kullanın. (Ic5bc4)
  • getOffsetFractionForPage, getOffsetDistanceInPages olarak yeniden adlandırıldı. (Ia05e2)

Hata Düzeltmeleri

  • InputTransformations, next ile birleştirildiğinde KeyboardOptions'leri artık yeni KeyboardOptions.merge yöntemi kullanılarak ayrı ayrı seçeneklere göre düzgün bir şekilde birleştiriliyor. (Ie5304, b/295951492)
  • AnchoredDraggableState'nin targetValue özelliği artık konumsal eşikleri gözetmez. Artık %50'lik bir gizli eşiği var. Bu, targetValue'ün iki ankrajın orta noktasında değiştiği anlamına gelir. (I82c2c)

Harici Katkı

  • 2 kaydırma API'si yeniden adlandırıldı (I56a75)

Sürüm 1.7.0-alpha06

3 Nisan 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha06 yayınlanır. 1.7.0-alpha06 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • LazyColumn ve LazyRow'e öğelerin görünmesi ve kaybolması animasyonu desteği eklendi. Daha önce, yerleşim (yeniden sıralama) animasyonlarını desteklemek için Modifier.animateItemPlacement() değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyan Modifier.animateItem() adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (I2d7f7, b/150812265)
  • LazyColumn/LazyRow istemcileri artık askıya alınmayan bir LazyListState.requestToScroll çağırarak yaklaşan ölçüm geçişi için anahtara dayalı bir dizin oluşturmayı devre dışı bırakabilir. (I98036, b/209652366)
  • Stilize dizeler için parseAsHtml yöntemi eklendi: HTML etiketleriyle işaretlenmiş bir dizeyi AnnotatedString olarak dönüştürmenize olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde listeleri görüntüleyemezsiniz. (I84d3d)
  • Resmi Android API'si (ScrollCaptureCallback) kullanılarak Oluştur kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumlarda doğru şekilde işlenmeyebilir. Bu nedenle, şu anda varsayılan olarak devre dışıdır. Etkinleştirmek için ComposeFeatureFlag_LongScreenshotsEnabled işaretini true olarak ayarlayın. Bu işaret, 1.7 beta sürümünden önce kaldırılacaktır. (I2b055, b/329296471)
  • GraphicsLayer değiştirici örneklerini belirtmek için Composable uygulamalarıyla koordinasyon kurmak zorunda kalmadan GraphicsLayer örneklerinin yerleşimi ve oluşturulmasında daha fazla esneklik sağlamak ve doğal oluşturma özelliklerini desteklemek için yeni GraphicsLayer API'yi kullanıma sunun.

API Değişiklikleri

  • Tüm KeyboardOptions parametreleri artık varsayılan olarak belirtilmemiş bir değere sahiptir. KeyboardOptions.merge yöntemi eklendi.
  • KeyboardOptions.autoCorrect, autoCorrectEnabled olarak yeniden adlandırıldı ve null değerinin belirtilmediğini belirten null olarak ayarlandı. (Ia8ba0, b/295951492)
  • outOfBoundsPageCount, beyondViewportPageCount olarak yeniden adlandırıldı. (I129c6)
  • fun ClipEntry.getMetadata(), val ClipEntry.clipMetadata olarak değiştirilir. (I50155)
  • TextFieldState.valueAsFlow() kaldırıldı. snapshotFlow { state.text } veya snapshotFlow { TextFieldCharSequence(state.text, state.selection) } (I7d629) kullanmayı tercih edin.
  • 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, yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için artık 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 uyumlu olmayabileceği için alınan TransferableContent'ün medya türünü kontrol etmeye teşvik ediliyordu. (I82f99)
  • BasicSecureTextField parametreleri yeniden sıralandı. BasicSecureTextField için uygun olan varsayılanları korurken keyboardType ve imeAction parametreleri kaldırıldı ve tam KeyboardOptions sınıfı kullanıldı. scrollState parametresi de kaldırıldı. (Ibbfa9)
  • TextFieldState.text sütununun türü TextFieldCharSequence yerine 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ı. Mevcut klip girişinin meta verilerini okumak için lütfen clipEntry.getMetadata() simgesini kullanın. Ayrıca, ClipboardManager.getClip sonucunun boş olup olmadığını kontrol ederek Panoya'da mevcut bir klip olup olmadığını anlayabilirsiniz. (I50498)
  • ClipboardManager.setClip artık panoyu temizleyebilmek için null değerini 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ğu için lambda alan Modifier.receiveContent aşırı yükleme işlevi 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ı bir API'ye geçti. (I37999)

Hata Düzeltmeleri

  • BasicTextField(state) varyantının CJK(kompozisyona dayalı) klavyelerde çalışmamasına yol açan hata düzeltildi. (I54425)
  • Modifier.dragAndDropTarget()'ün, Modifier.Node yeniden kullanımıyla belirli senaryolarda eski verilere referans verebileceği bir hata düzeltildi. (I05bb1)
  • AnchoredDraggableState#anchoredDrag çağrılarının bir anchoredDrag işleminin sonunda sonlandırıldığı yakın tarihli bir sözleşme değişikliğini geri aldık. (I95715)

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha05 yayınlanır. 1.7.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Köprülerin stilini belirlemek için deneysel LocalTextLinkStyle yerel kompozisyonu kaldırıldı. (Iebfa7)
  • BasicText için onLinkClicked bağımsız değişkeni ile deneysel geçersiz kılma kaldırıldı. Gelecekte köprü desteği için yeni bir API kullanıma sunulacaktır. (I107d5)
  • TextFieldState ve TextFieldBuffer altındaki kod noktalarıyla ilgili yöntemler ve özellikler kaldırıldı. Ayrıca, seçim ve derlemeyle ilgili diğer API'lerden inChars son ekleri kaldırıldı. (Ief7ce)
  • AnchoredDraggable'nin currentValue özelliği artık bir sabitleme noktasından geçerken güncellenecek. Önceki currentValue anlamlarını almak için settledValue kullanın. Yalnızca bir ankraja yerleştiğinde güncellenir. İlerleme artık bir özellik yerine işlev olarak (başlangıç ve bitiş noktası gerektirir) gösterilmektedir. (Ibe6e8, b/318707189, b/298271489, b/294991954)
  • BasicTextField(state), TextFieldState, InputTransformation, OutputTransformation, TextFieldLineLimits, TextFieldDecorator kararlı olarak derecelendirilir. (I9582b)
  • Alt düzey IME ile ilgili testler ve diğer alt düzey IME kullanım alanları yazmaya yardımcı olmak için InterceptPlatformTextInput kullanıma sunuldu. PlatformTextInputTestOverride desteği sonlandırıldı. (I862ed, b/322680547)
  • restrictedConstraints()'ü iki yönteme bölün: fitPrioritizingWidth() ve fitPrioritizingHeight() (I6d7fd)

Harici Katkı

  • En son kaydırma işleminin kaydırma yönünü kontrol etmek için 2 yeni API isLastScrollForward/isLastScrollBackward eklendi. Henüz kaydırma işlemi yoksa yanlış 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 yayınlanır. 1.7.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Android U'dan sonraki cihazlarda ekran kalemiyle el yazısı özelliğini destekleme (I002e4)
  • TextFields'ye, tercih edilen dili önceden ayarlamak için IME'lere belirli yerel ayarlar ile ipucu verme olanağı sağlamak amacıyla hintLocales, KeyboardOptions'e eklendi. (Id18c2)
  • value: String ve onValueChange: () -> String parametrelerini alan deneysel BasicTextField2 ve BasicSecureTextField aşırı yüklemeleri kaldırıldı. (I568b4)
  • Uygulandığı BasicTextField2 öğesinin anlamını etkilemek için InputTransformation öğesine isteğe bağlı bir applySemantics işlevi ekleyin. (I74a2f, b/170648072)
  • Bu CL'de, oluşturma işleminde kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için GetScrollViewportLength semantik işlemini ekliyoruz. Bu CL, söz konusu mülkün Temel Kaydırılabilir Listeler'de kullanımını da kapsar. (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 izin vermek için DelegatableNode.scrollIntoView() kullanıma sunuldu. (I2b3b7, b/299939840)
  • Değiştirici düğümlerin yerel bir kompozisyon okumadan mevcut Android View'i almasına izin vermek için DelegatableNode.requireView() kullanıma sunuldu. (I40768)
  • Bağlamsal akış satır kapsamı ve bağlamsal akış sütun kapsamı içinde bağlamsal düzen bilgilerini kullanıma sunuyoruz. Bu bilgilerde satır dizini, konum ve belirtilen konumda kalması için maksimum genişlik ve yükseklik kısıtlamaları yer alır. Maksimum genişliği/yükseklik aşılan öğeler, taşma ayarlarına bağlı olarak bir sonraki satıra akabilir veya atlanabilir. (Id13f8, b/292114798)

Hata Düzeltmeleri

  • Belirli koşullarda TextField öğesinin enabled veya readOnly özelliklerinin değiştirilmesinin kilitlenmeye neden olduğu bir hata düzeltildi. (Iae17b)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha03 yayınlanır. 1.7.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • onPlaced'ı geçersiz kılma ve koordinatları bir mülkte kendiniz depolamanıza gerek kalmadan Modifier.Node'nin mevcut LayoutCoordinates değerini almak için DelegatableNode.requireLayoutCoordinates() kullanıma sunuldu. (Ia8657)
  • onPlaced'ı geçersiz kılma ve koordinatları bir mülkte kendiniz depolamanıza gerek kalmadan Modifier.Node'nin mevcut LayoutCoordinates değerini almak için DelegatableNode.currentLayoutCoordinates kullanıma sunuldu. (Iaebaa)
  • AnchoredDraggable tarafından kullanılan DraggableAnchors'teki performans optimizasyonları. (I89cff)
  • BasicTextField2 ve androidx.compose.foundation.text2 paketindeki ilgili API'ler androidx.compose.foundation.text'e taşınır. (I9f635)
  • BasicTextField2 artık CodepointTransformation parametresini kabul etmiyor. BasicSecureTextField veya OutputTransformation kullanın. (Id34ff)
  • Yalnızca iki AnnotatedStrings notunu karşılaştırmak için yöntem eklendi. (I32659)
  • MaxLines ve Overflow ile ContextualFlowRow ve Gelişmiş FlowRow/Column özelliklerini kullanıma sunuyoruz. Deneysel FlowRow ve FlowColumn'te yapılan geliştirmeleri duyurmaktan mutluluk duyuyoruz. Artık maxLines ve taşma desteğinin yanı sıra ContextualFlowRow ve ContextualFlowColumn de kullanıma sunuldu. Bu güncelleme, performans açısından en uygun bileşenleri sunmak için tasarlanmıştır. ContextualFlow*, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmelerini kullanan çok sayıda öğe için mükemmeldir. FlowRow ve FlowColumn ise 100'den az öğe içeren küçük bir grup için mükemmeldir. Önemli: Çapraz eksen maksimum değerine sığmalarından bağımsız olarak tüm öğelerin oluşturulduğu FlowRow veya FlowColumn'teki mevcut davranışı korumak için başlatma sırasında overflow'yi FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin kullanım örneklerini görmek için ContextualFlowRowSample ve FlowRowSample sayfalarını inceleyin. (Ib9135, b/293577082)

Hata Düzeltmeleri

  • İşaretçi animasyonu artık açık ve kapalı durumlar arasında kare isteğinde bulunmuyor. (Ia2253)
  • Desteği sonlandırılan KeyboardOptions kopyalama kurucuları artık tüm özellikleri doğru şekilde kopyalıyor. (If12de)

Sürüm 1.7.0-alpha02

7 Şubat 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha02 yayınlanır. 1.7.0-alpha02 sürümü bu taahhütleri 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 yerel kompozisyonu eklendi. Uygulamada kendi temanızı kullanıyorsanız bu yerel kompozisyonu temanıza göre ayarlamanız gerekir. Material teması kullanıldığında bağlantının rengi varsayılan olarak Material'ın birincil rengine ayarlanır. (I7eb10)
  • Geliştiricilere Jetpack Compose'da zengin içerik alma olanağı sunan receiveContent değiştiricisi kullanıma sunuldu.
  • receiveContent, yazılım klavyesi tarafından sağlanan veya Pano yapıştırma işlemi aracılığıyla zengin içeriği kabul etmek için BasicTextField2 ile entegre olur. (I81b72)
  • Bu değişiklikle birlikte, diğer kullanım alanlarını açmak ve daha fazla esneklik sağlamak için sayfalayıcıda SnapFlingBehavior yerine TargetedFlingBehavior kullanacağız. (I762ea)
  • Bu değişiklikle birlikte, Snapping API'lerini 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 ofseti hakkında bilgi yayılmasına olanak tanıyan bir FlingBehavior olan TargetedFlingBehavior'ü tanıtın. (I6a207)

Hata Düzeltmeleri

  • BasicTextField2 artık kaydırıldığında veya giriş nedeniyle görünümden çıktığında yazarken imleci görünümde tutar. (Ieb856, b/237190748)

Harici Katkı

  • LazyLists'in ön 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 yayınlanır. 1.7.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Yeni bir Indication API (IndicationNodeFactory) eklendi. Bu sayede, önceki (artık desteği sonlandırılmış) rememberUpdatedInstance API'ye kıyasla daha yüksek performanslı Indication uygulamaları elde edebilirsiniz. Taşıma bilgileri için developer.android.com adresine bakın.
  • clickable / combinedClickable / selectable / toggleable artık boş değer atanabilir MutableInteractionSource parametresini kabul etmektedir. Boşsa ve sağlanan Indication bir IndicationNodeFactory ise Indication yalnızca gerektiğinde yavaşça oluşturulabilir. Bu da performansı artırır. MutableInteractionSource öğesini kaldırmayıp kullanmıyorsanız null değerini iletmeniz önerilir.

API Değişiklikleri

  • AnchoredDraggable içinde DecayAnimation tanıtın. Bu değişiklik, AnchoredDraggable'a bir decayAnimationSpec parametresi ekler ve sabit noktalardan birine yerleşirken azalma animasyonunun kullanılmasını sağlar. Bu değişiklik, her bir spesifikasyonun kullanım alanını anlamanıza yardımcı olmak için mevcut animationSpec değerinin snapAnimationSpec olarak yeniden adlandırılmasını da içerir.
  • BasicTextField2 deneme amaçlı kullanılabilir. BasicTextField ile yaklaşık olarak aynı özelliklere sahip olmalı ve davranış üretime hazır olmalıdır. Ancak API şu anda deneyseldir. Kararlı hale gelmeden önce BasicTextField olarak yeniden adlandırılır ve aynı pakete taşınır.
  • BasicTextField2 için OutputTransformation API'nin ilk taslağını kullanıma sundu. Bu API, eski BasicTextField'daki VisualTransformation kullanım alanlarının çoğunu değiştirir. Ancak henüz tamamlanmadı ve bazı şeyler düzgün çalışmayacaktır. Ancak kullanım alanlarınız için API kullanılabilirliğiyle ilgili geri bildirimlerinizi bekliyoruz. (aosp/2708848)
  • Metne bağlantı ve tıklanabilir öğe eklemenize olanak tanıyan LinkAnnotation özelliği kullanıma sunuldu. Bağlantılar özelliği henüz tamamlanmadı ve daha fazla API değişikliği yapılacak.
  • Geliştiricilere Jetpack Compose'da zengin içerik alma olanağı sunan receiveContent değiştiricisi kullanıma sunuldu.
  • receiveContent, yazılım klavyesi tarafından sağlanan veya Pano'dan yapıştırılan zengin içeriği kabul etmek için BasicTextField2 ile entegre olur.
  • KeyboardOptions.shouldShowKeyboardOnFocus, BasicTextField'un odağa alındığında yazılım klavyesi isteme varsayılan davranışını devre dışı bırakmanıza olanak tanır.
  • TextInputService ve LocalTextInputService artık kullanımdan kaldı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ı. Kaçınılmaz bir şekilde yüksek performans cezasına sahiptir ve diğer optimizasyonları engeller. Bunun yerine yeni IndicationNodeFactory API'yi kullanmalısınız.

Hata Düzeltmeleri

  • BasicTextField, VisualTransformation iletildiğinde artık küçük bir ofset eşleme seçimini önceden doğrular. Bu, daha sonraki ölçüm veya çizim geçişlerinde kurtarılamaz istisnalara yol açan yaygın kodlama hatalarını yakalamanıza yardımcı olur. Oluşturma sırasında hata atarak geliştiricilerin bu hataları geliştirme sırasında görme olasılığı artar. Bu da üretimde kilitlenmeleri önlemeye yardımcı olur. (I0fd42)
  • Geçersiz bir dizin için geçersiz bir dizin döndürürseniz VisualTransformation hata vermez (b/316401857 )

1.6 sürümü

1.6.8 sürümü

12 Haziran 2024

androidx.compose.foundation:foundation-*:1.6.8 yayınlanır. 1.6.8 sürümü bu taahhütleri içerir.

1.6.7 sürümü

1 Mayıs 2024

androidx.compose.foundation:foundation-*:1.6.7 yayınlanır. 1.6.7 sürümü bu taahhütleri içerir.

1.6.6 sürümü

17 Nisan 2024

androidx.compose.foundation:foundation-*:1.6.6 yayınlanır. 1.6.6 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Belirli koşullarda TextField öğesinin enabled veya readOnly özelliklerinin değiştirilmesinin kilitlenmeye neden olduğu bir hata düzeltildi. (Iae17b)

1.6.5 sürümü

3 Nisan 2024

androidx.compose.foundation:foundation-*:1.6.5 yayınlanır. 1.6.5 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

1.6.4 sürümü

20 Mart 2024

androidx.compose.foundation:foundation-*:1.6.4 yayınlanır. 1.6.4 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Uzun basıp sürükleme seçim hareketi, sürüklemenin ilk karesinde metnin düzen sınırlarının dışına çıktığında artık kilitlenmiyor. (Icdf90, b/325307463)

Sürüm 1.6.3

6 Mart 2024

androidx.compose.foundation:foundation-*:1.6.3 yayınlanır. 1.6.3 sürümü bu taahhütleri içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.foundation:foundation-*:1.6.2 yayınlanır. 1.6.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • AnimateContentSize'in düzgün şekilde sıfırlanmasını düzeltme (I07051)
  • Bazı durumlarda metnin intrinsicHeight'ü fazladan önbelleğe alınmasıyla ilgili sorun düzeltildi. (3cd398, b/217910352)

1.6.1 sürümü

7 Şubat 2024

androidx.compose.foundation:foundation-*:1.6.1 yayınlanır. 1.6.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Ekran kaydırıldığında sınırın üzerine çıkıldığında ızgara ölçüsünün kademeli olarak gösterilmesi düzeltildi. (bffc39)
  • Büyük boyutlara sahip düzen kontrolü ekleyin. (e74af5)
  • Aralıklı ızgaranın başındaki 0 boyutundaki öğelerin yerleşimini düzeltin. (785f94)
  • onRelease geri çağırma işlevini onForgotten ile aynı sırada çağırın. (31ce3b)

1.6.0 sürümü

24 Ocak 2024

androidx.compose.foundation:foundation-*:1.6.0 yayınlanır. 1.6.0 sürümü bu taahhütleri içerir.

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

  • Önceden tanımlanmış bir ankraj grubu arasında sürükleyip animasyon oluşturma olanağı sunan yeni değiştirici Modifier.anchoredDraggable. Bu değiştirici, Modifier.swipeable için bir değişim aracı olarak tasarlanmıştır. Taşıma kılavuzundan bu aracı nasıl kullanacağınızı ve Modifier.swipeable'ten nasıl geçiş yapacağınızı öğrenin.
  • 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'leri inceleyin
  • Modifier.draggable2D, kolay 2D sürükleme desteği sağlayan yeni değiştiricidir. Örnek bölümüne bakın.
  • AndroidExternalSurface ve AndroidEmbeddedExternalSurface, Compose'da yüzeye dayalı bileşenleri eklemeyi kolaylaştırmak için eklendi
  • Pager ve snapFlingBehaviour'te çeşitli API değişiklikleri ve iyileştirmeleri
  • Çeşitli odak, metin ve içe yerleştirilmiş öğe 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 yayınlanır. 1.6.0-rc01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • DragAndDropTarget() uzantısı oluşturucu 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 yayınlanır. 1.6.0-beta03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.foundation:foundation-*:1.6.0-beta02 yayınlanır. 1.6.0-beta02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Yalnızca yeniden düzen oluşturma kaydırma işleminden sonra canScroll'ü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 yayınlanır. 1.6.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alıcı DragAndDropTarget'yi açıkça alır ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda içerir. Artık DragAndDropModifierNode için iki fabrika işlevi vardır. Biri aktarım almak, diğeri veri aktarmak için (I69481)
  • maximumFlingVelocity, kayan nokta olarak gösterilecek şekilde güncellendi. maximumFlingVelocity birimi hakkında daha net bilgi vermesi için dokümanlar güncellendi. (I8adc7)
  • DragAndDropModifierNode fabrikasındaki onDragAndDropStart, acceptDragAndDropTransfer olarak yeniden adlandırıldı.

    acceptsDragAndDropTransfer, sürükle ve bırak oturumunda kabul edilmek üzere dragAndDropTarget Modifier alanına eklendi. Bu lambda, sürükle ve bırak oturumuyla ilgileniyorsanız geçerli bir DragAndDropTarget döndürür. Sürükle etkinliklerini işlemek için kullanılan diğer lambdalar 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'ü göstermek, kullanılırken sürükleme hareketlerini algılama kontrolü sağlar. Widget bir hedef ankraja doğru animasyon yaparken bu değeri 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ükle dekorasyon DrawScope lambda parametrelerini alıyor

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

    Bir DragAndDropModifierNode için fabrika işlevindeki onDragAndDropEvent, sağlanan DragAndDropTarget'ın yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi ifade etmek 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 yazın. (Ifa5a8)

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

  • Gelecekte yeniden kullanılmak üzere tutulan SubcomposeLayout öğelerinin (ve buna dayalı LazyColumn gibi düzenlerin) devre dışı bırakıldığı kabul edilir. Bu tür düğümleri test etmek için yeni assertIsDeactivated() test API'si kullanıma sunulmuştur. 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ılır.

  • Modifier.magnifier sınıfının magnifierCenter parametresi, aynı varsayılan davranışı koruyarak null olabilir hale getirilir. (I6aa66)

  • Material SwipeToReveal API'leri (kartlar ve çipler için), bu yuvaları oluşturmak üzere artık veri sınıfına dayalı örnekler yerine yuva tabanlı bir API'den (Compose tarafından önerilen) yararlanıyor. Bu, önemli bir değişikliktir. Yeni API'nin nasıl kullanılacağına ilişkin örnekler için lütfen demoya ve örnek koda bakın. (Ia8943)

Hata Düzeltmeleri

  • PageSize.Fixed için equals ve hashcode işlevlerini uygulayın. (Ie3ede, b/300134276)
  • minWidth değiştiğinde ve minWidth, ilk ölçüm kısıtlamalarından maxWidth daha az olduğunda BasicText düzeninin küçülmemesine neden olan bir hata düzeltildi (Idb19c)
  • ArcLine'te sarma gradyan için oluşturma desteği eklendi. (I4d5bb)
  • Pencere içe yerleştirilmesi değişikliğiyle ilgili ikili uyumluluk sorunu düzeltildi (Iee695)
  • Mikro karşılaştırmalar, bu katman olmadan daha iyi performans gösterdiğinden Material3 çipi/düğmesi için materyal çekirdek katmanını kaldırın. (I55555)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha08 yayınlanır. 1.6.0-alpha08 sürümü bu taahhütleri 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çin onDrawDragShadow lambda drawDragDecoration olarak, DragAndDropInfo için boyut parametresi ise dragDecorationSize olarak yeniden adlandırıldı. (Id0e30, b/303904810)
  • BasicTextField2'nin decorationBox parametresi decorator olarak yeniden adlandırılır. Türü de eşdeğer bir eğlenceli arayüz TextFieldDecorator olarak değiştirilir. (I23c1c)

Hata Düzeltmeleri

  • onValueChange koşullarıyla ilgili BasicTextField ile ilgili belgeler iyileştirildi. (I90fc9, b/160257648)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha07 yayınlanır. 1.6.0-alpha07 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Özel metin düzenleyiciler için test yazmak üzere PlatformTextInputMethodTestOverride kullanıma sunuldu. (Id159b)
  • GraphicsSurface, AndroidExternalSurface olarak yeniden adlandırıldı (I11680)
  • Doğrusal olmayan yazı tipi ölçeklendirmesini devre dışı bırakmak için DisableNonLinearFontScalingInCompose geçici işareti eklendi. Testlerinizi temizlemek için zamana ihtiyacınız varsa testlerinizde DisableNonLinearFontScalingInCompose = true değerini ayarlayın. Bu işaret, Oluştur 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)
  • Ayırma işlemlerini önleyen ColorList ve ColorSet koleksiyonları eklendi. (I744bd)
  • Bu değişiklikle, SnapLayoutInfoProvider uygulamalarının bir uygulama ayrıntısına dönüştürülen shortSnapVelocityThreshold kaldırılır. (I65f6d)
  • Sürükle ve bırak oturumlarını başlatmak için dragAndDropSource Değiştirici ve sürükle ve bırak oturumlarından veri almak için dragAndDropTarget Değiştirici ekler (Ib7828, b/286038936)
  • SnapPositionInLayout dokümanlarını ve konumlandırma yöntemini güncelleyin. SnapPositionInLayout konum yöntemine içerik dolguları ekleyin. (Id7938, b/300116110)
  • Kullanıcı tarafından yapılan değişiklikleri geri alma/yeniden yapma olanağı sağlayan UndoState, TextFieldState'e eklendi. (Icc024)

Hata Düzeltmeleri

  • Hız değişikliğinden sonra basicMarquee'ün animasyonlu olmaması 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 yayınlanır. 1.6.0-alpha06 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • SurfaceView, TextureView: GraphicsSurface() ve EmbeddedGraphicsSurface() için yeni birleştirilebilir sarmalayıcılar. Deneysel bir API olduğundan değişikliklere ve modifikasyonlara tabidir. (I9ddb2)
  • Modifier.magnifier() artık kararlı bir API'dir. Buna, değiştiricinin kendisinde satır içi parametreler kullanmak için MagnifierStyle'ün kaldırılması da dahildir. (I83bec, b/298381260, b/262367109, b/261438887)

API Değişiklikleri

  • updateCurrentPage ve updateTargetPage, ScrollScope'de kullanıma sunuldu. Bu özellikler, PagerState.scroll'da animasyonlu kaydırma özelliğinin özelleştirilmesine olanak tanıyan son parçalardır. (I9cad5, b/267744105, b/243786897)
  • Yoğunluk özelliğini SnapFlingBehavior'ten kaldırın. SnapLayoutInfoProvider'ün tüm uygulamalarında yoğunluğa erişmenin bir yolu zaten vardır. Alıcı kapsamı kaldırılabilir. Bu durumda hem SnapFlingBehavior hem de SnapLayoutInfoProviders daha az karmaşık bir şekilde uygulanabilir. (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 sabitleme ofsetleri aracılığıyla sağlanmalıdır. (If320c)

Davranış Değişiklikleri

  • Oluşturma özelliği artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirmesi kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'ün üzerinde olduğunda küçük metinler normal şekilde büyür ancak zaten büyük olan metinler yalnızca biraz büyür. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yükseklikle orantılı olacak şekilde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirme En İyi Uygulamaları başlıklı makaleyi inceleyin. (I11518)

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 yayınlanır. 1.6.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Mevcut BasicTextField API'sinde olduğu gibi, BasicSecureTextField için sabit bir değer ve bu değeri değiştirmek için bir geri çağırma işlevi kabul eden aşırı yüklemeler ekleyin. (Ia4882)
  • API 33 ve sonraki sürümlerde kayan pencerelerden uzak durmayı tercih ederek Modifier.preferKeepClear() ekleyerek bileşen olarak işaretleyin. (Ib51d5, b/297260115)
  • ScrollView ve RecyclerView gibi Görünüm bileşenlerindeki fırlatma hızları ViewConfiguration.ScaledMaximumFlingVelocity ile sınırlıdır. Oluştur artık maximumFlingVelocity için kendi sürümünü içerir ve bu sürüm Draggable için geçerlidir. (Ibf974)
  • Desteği sonlandırılan Pager ve PagerState aşırı yüklemeleri kaldırıldı. (Iea07e)
  • compose.foundation'a BasicTooltipBox eklendi ve PlainTooltipBox ile RichTooltipBox, TooltipBox'i yeni PlainTooltip ve RichTooltip bileşenleriyle kullanacak şekilde güncellendi. (I79e1d)

Sürüm 1.6.0-alpha04

23 Ağustos 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha04 yayınlanır. 1.6.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Alt kompozisyonların yaşam döngüsünü ve yeniden kullanımını yönetmek için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)
  • Modifier.focusGroup, kararlı API'ler arasına alındı. (I7ffa3)
  • Mevcut BasicTextField API'sinde olduğu gibi, BasicTextField2 için sabit bir değer ve bu değeri değiştirmek için bir geri çağırma işlevi kabul eden aşırı yüklemeler ekleyin. (I3f2b8)
  • GridItemSpan::currentLineSpan artık kararlı bir API'dir. (Icc29c)
  • contentDescription kabul eden Canvas artık kararlı bir API'dir. (Ib3d29)
  • ScrollState'te viewportSize tanıtıldı. Bu, ölçüm yapıldıktan sonra ScrollState kullanan bileşenin viewPort boyutunu öğrenmenin bir yoludur. (I8b85a, b/283102682)
  • Sayfalayıcı'daki ön getirme işleminin Görünümler'deki davranışla eşleşmediği sorun düzeltildi. (I93352, b/289088847)
  • Modifier.consumeWindowInsets(PaddingValues) artık kararlı.
    • 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 yayınlanır. 1.6.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • LazyLayout için aşırı yükleme eklendi. Önceki gibi düz bir nesne değil, LazyLayoutItemProvider lambdası kabul eder. Önceki aşırı yükleme desteği sonlandırılmıştır. (I42a5a)
  • privateImeOptions (Idb772) yapılandırması için destek eklendi

Hata Düzeltmeleri

  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca, readOnly odaklanırken true değerinden false değerine 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 yayınlanır. 1.6.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Pager'te bir ölçüm geçtikten sonra toplanan bilgilerle PagerLayoutInfo kullanıma sunuldu. Ayrıca, Pager'teki tek bir ölçülen sayfayla ilgili bilgiler olan PageInfo de kullanıma sunuldu. (Iad003, b/283098900)
  • Birleştirilebilir öğelere izin verilen girişleri belirtmek için ek ek açıklamalar (I51109)
  • Testlerde odaklanmayı istemenin daha kolay ve bulunabilir bir yolu olarak SemanticsNodeInteraction.requestFocus eklendi. (Ie8722)
  • Tamamen yeniden tasarlanmış PlatformTextInput* API. (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 kaydırma yönünü belirlemenize yardımcı olmak için canPan parametresinde kaydırma deltasını sağlar. (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 yayınlanır. 1.6.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • InputConnection#requestCursorUpdates kanalını destekleyin (I0c69b)
  • Özel animasyon özelliklerine izin vermek için scrollAnimationSpec özelliği kullanıma sunuldu. BringIntoViewCalculator ayarı BringIntoViewScroller olarak güncellendi. (Idb741)
  • Bitmap öğeleri yüklenmeye çalışırken, yüklenemeyen öğe yolunun açıklamasıyla birlikte atılan throwables'ı sarmalamak için ResourceResolutionException türünü ekleyin. (I19f44, b/230166331, b/278424788)
  • Metin çevirisini desteklemek için anlambilim özellikleri ve işlemleri eklendi. (I4a6bc)
  • Scrollable gibi bileşenlerin bringIntoView isteklerine nasıl yanıt vereceğini özelleştirmek için kullanılabilecek bir BringIntoViewCalculator API kullanıma sunuldu. Scrollable işlevinin aşırı yüklemesi, isteğe bağlı olarak bir 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, kompozisyonda MutableInteractionSource oluştururken bunu hatırlamadığınız durumlarda sizi uyarmak için bir lint kontrolü eklendi. (I5daae)
  • Fareyle seçim desteği eklendi. Dokunma tabanlı seçim, kelimeye göre genişler ve karaktere göre 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 yayınlanır. 1.5.4 sürümü bu taahhütleri içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.foundation:foundation-*:1.5.3 yayınlanır. 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 yayınlanır. 1.5.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Anlam bilgisi geçersiz olduğunda belirli durumlarda kilitlenmeye yol açan metin hatası düzeltildi.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.foundation:foundation-*:1.5.1 yayınlanır. 1.5.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca, readOnly odaklanırken true değerinden false değerine değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)

1.5.0 sürümü

9 Ağustos 2023

androidx.compose.foundation:foundation-*:1.5.0 yayınlanır. 1.5.0 sürümü bu taahhütleri içerir.

1.4.0'dan sonraki önemli değişiklikler

  • Modifier.clickable,Modifier.draggable, Modifier.scrollable, düzen değiştirici ve daha birçok temel değiştirici Modifier.Node API'ye taşındı. Bu sayede ilk kompozisyondaki ek maliyet azaltıldı.
  • Sayfa çevirici kararlılığında iyileştirmeler yapıldı. Birçok hata düzeltildi.
  • 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 yayınlanır. 1.5.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • mutableStateOf() çağrılarının, ilkellere karşılık gelen özel türlerine taşınmasını önermek için isteğe bağlı bir denetim mevcuttur. Dil bilgisi denetimi kimliği AutoboxingStateCreation. Daha önce bu inceleme tüm projeler için varsayılan olarak etkinleştiriliyordu. Bu uyarıyı Android Studio'nun düzenleyicide ve projenizin lint çıkışlarında görmek için önem derecesini bilgilendirme olarak ayarlayarak uyarı (veya daha yüksek) olarak değiştirin. Bunun için modülünüzün build.gradle veya build.gradle.kts yapılandırmasında gösterildiği gibi warning "AutoboxingStateCreation" değerini belirtin (I34f7e):

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

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.foundation:foundation-*:1.5.0-beta03 yayınlanır. 1.5.0-beta03 sürümü bu taahhütleri içerir.

Sürüm 1.5.0-beta02

7 Haziran 2023

androidx.compose.foundation:foundation-*:1.5.0-beta02 yayınlanır. 1.5.0-beta02 sürümü bu taahhütleri içerir.

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.foundation:foundation-*:1.5.0-beta01 yayınlanır. 1.5.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Kalp atış hızı ve günlük adım sayısını sağlamak için PlatformDataProvider'ü uygulayın. SensorGateway arayüzü herkese açık API'den kaldırıldı. (I55b84)

Hata Düzeltmeleri

  • Tembel liste/ızgara/vb. ölçümleri sırasında ayırmaları azaltma (Iaf9e2)
  • Anlık görüntüler uygulanırken azaltılmış tahsisler (I65c09)
  • Bahar animasyonlarından ayrılan kaynaklar kaldırıldı (Ie9431)
  • TextLayout (I0fd11) alanından ayrıldı
  • İşaretçi hızı izlemede birden çok 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Tam parametre listesi içeren optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • LazyGridState ile kullanılabilen bir SnapLayoutInfoProvider tanıtın. (I92134, b/269237141, b/260914964)
  • Eşlenmemiş kademeli ızgaralar öğe kapsamı için deneysel Modifier.animateItemPlacement() eklendi. Otomatik konum değişikliği/yeniden sıralama animasyonları 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ığı ve kalan alanın çapraz eksen düzenlemesine göre dağıtıldığı bir LazyGrid tanımlar. (I8542f)
  • Sayfalayıcı için alıcı kapsamı PagerScope ve belirli bir sayfa ofsetini hesaplamak için bir yardımcı program işlevi kullanıma sunuldu. (If2577)
  • Bir anlık görüntü fırlatma davranışı oluştururken snapPositionalThreshold öğesini tanıtın. Sayfalayıcı'da kısa anlık görüntüleme için konumsal bir eşik belirtmek üzere bu parametreyi kullanın. (If8f7f)
  • SnapLayoutInfoProvider.calculateSnappingOffsetBounds öğesi calculateSnappingOffset ile değiştirildi. Bu yeni yöntemde, sonraki ofsetin sabitlenmesini isteriz. Sınırların hesaplanması, uygulama düzeyinde yapılmalıdır. Bu, çakıştırmanın nasıl gerçekleşmesi gerektiğine bağlı olarak farklılık gösterebilir. (I923a4)
  • LazyStaggeredGrid API'leri kararlı sürüme geçirildi. (I633a5)
  • pageCount, Horizontal/VerticalPager hesabından kaldırılsın mı? Bu, durum oluşturulurken sağlanmalıdır. PagerState ve rememberPagerState, pageCount'yi 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'yi kabul edecek şekilde güncellendi. (Ifa3cb, b/266965072)
  • Sayfa ayırıcının SnapFlingBehavior bölümünde shortSnapVelocityThreshold'ü tanıtın. (I7379e, b/275579012)
  • FlowRowScope ve FlowColumnScope ekler. (I54fe2)

Hata Düzeltmeleri

  • Kısıtlamalarda minWidth ve minHeight olduğunda metinle ilgili anlam bilgisi almak için yapılan çağrılar artık kilitlenmiyor. (Ibd072)
  • Dialog bileşeni tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan gerileme 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ü bu taahhütleri içerir.

Bu sürümde, Oluştur için yeni metin oluşturma paketi etkinleştirilmiştir. Yeni paket performans açısından optimize edilmiştir ve görünür bir değişiklik görmezsiniz.

Oluşturulan metinde değişiklik görürseniz davranıştaki farkı onaylamak için NewTextRendering1_5 = false ayarını yaparak hata ayıklama yapabilirsiniz. Bu ayar, 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ılacaktır.(Iada23, b/246960758)

API Değişiklikleri

  • FlowColumn/FlowRow satır içine alı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ü bu taahhütleri içerir.

API Değişiklikleri

  • LazyGrid'te sabit boyutlu hücreler ve bunları çapraz eksen düzenlemesiyle düzenleme desteği eklendi. (I83ed9, b/235121277, b/267942510)
  • LazyStaggeredGrid'te sabit boyutlu şeritler ve bunları çapraz eksen düzenlemesiyle düzenleme desteği eklendi. (I7d519)
  • AnnotatedString'lardaki UrlAnnotation'ler artık TalkBack gibi erişilebilirlik hizmetleri aracılığıyla açılabilir. (If4d82, b/253292081)
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • Metinle ilgili test işlemleri (ör. performTextInput) artık alanı tıklamak yerine anlambilim işlemini kullanarak doğrudan odaklanmayı isteyecektir. (I6ed05)
  • FlowRow içinde verticalArrangement ve FlowColumn içinde horizontalArrangement kullanılarak eksenler arası boşluk/düzenleme desteği eklendi. Ayrıca FlowRow/FlowColumn içindeki üst düzey verticalAlignment ve horizontalAlignment öğelerini de kaldırırız. 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Metin ve BasicText, yeni değiştirici sistemini kullanacak şekilde yeniden yapılandırıldı. Bu, birçok durumda önemli performans iyileştirmelerine yol açar. Hiçbir değişiklik görünmez. (If1d17, b/246961435)
  • Metin düzenleyici düğümlerinde IME işlemini çağırmak için PerformImeAction semantik işlemi eklendi. (Ic606f, b/269633506)

Hata Düzeltmeleri

  • Modifier.hoverable'ün iç yapısı güncellendi. hoverable değiştirici yalnızca etkinleştirilmişse denetleyicide 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, herhangi bir değişiklik olmadan (yalnızca sürüm yükseltmesi) yayınlanır.

1.4.2 sürümü

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ü bu taahhütleri 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ü bu taahhütleri içerir.

1.4.0 sürümü

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ü bu taahhütleri içerir.

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

  • Text ve TextField'nin yanı sıra alt düzey paragrafa Emoji uyumluluğu entegrasyonu eklendi. emojicompat yapılandırıldığında varsayılan olarak etkinleştirilir.
  • EmojiCompat, PlatformParagraphStyle kullanılarak belirli bir metinde yapılandırılabilir.
  • LazyStaggeredGrid(I28252) için tam satır kapsamı desteği eklendi
  • Deneysel onHover ClickableText'a 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)
  • FlowRow ve FlowColumn artık ana eksende yeterli alan yoksa yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütuna dayalı düzenine olanak tanıyan @ExperimentalFoundationApi olarak kullanılabilir. (I3a7b2)
  • Modifier.basicMarquee(), kaydırmalı ışıklı reklam efekti içeren içerikler 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ü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • BasicTextField'ın SetText semantik işlemi artık metin arabelleğini IME güncellemeleri ve test işlevleriyle (ör. performTextReplacement) aynı kod yolunu kullanarak güncelleyecektir.
  • Metin test işlevleri performTextClearance, performTextReplacement ve performTextSelection 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Layout yeniden kullanıldığında (ör. LazyColumn öğesi olarak) durumu düzgün şekilde ele almak için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni bir Modifier.Node.onReset() geri çağırma işlevi eklendi. Odaklanmış durumu düzgün şekilde sıfırlamak için FocusTargetModifierNode düzeltildi. (I65495, b/265201972)
  • Canvas'ta metin çizerken farklı karışım 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 adresinden uzatın. (Ie6d21)

Hata Düzeltmeleri

  • Seçim tutamaçlarını ayarlayarak artık kısmi karakter seçilemez. (Idedd1)
  • Boş TextField alanında Ctrl+geri tuşu kullanı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ü bu taahhütleri içerir.

Yeni Özellikler

  • 1.3 sürümünden itibaren Text ve TextField'e, ayrıca alt düzey paragrafa Emoji uyumluluğu entegrasyonu eklendi. emojicompat yapılandırıldığında varsayılan olarak etkinleştirilir.
  • EmojiCompat, PlatformParagraphStyle kullanılarak belirli bir metinde yapılandırılabilir.

API Değişiklikleri

  • Kompozisyondan çıkan ancak etkin kalması gereken öğeleri korumak için tüm LazyLayouts'larda kullanılan PinnableContainer API'nin ortak uygulaması eklendi. (If45a4)
  • PinnableContainer.PinnedHandle.unpin(), release() olarak yeniden adlandırıldı (I4667a)

Harici Katkı

  • mainAxisItemSpacing mülkü LazyListLayoutInfo, LazyGridLayoutInfo ve LazyStaggeredGridItemInfo'e 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ü bu taahhütleri içerir.

Yeni Özellikler

  • LazyStaggeredGrid (I28252) için tam satır kapsamı desteği eklendi
  • Deneysel onHover öğesini ClickableText'a ekleme (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/son API'lerini birleştirilmiş "süsleyici" applyToScroll ve applyToFling işlevlerine birleştirir. Yeni API şekliyle kaydırma efektinin nasıl uygulanacağına dair örnekler için dokümanlar bölümündeki güncellenmiş örneklere bakın. (I8a9c4, b/255554340)
  • Satır içi/desteği sonlandırılmış ve gizli işlevlerin daha fazla türü/boşluk kabul edebileceği durumlar (I24f91)
  • TextStyle'deki LineBreak ve Hyphens API'leri kararlı sürüme geçirildi. (Ic1e1d)

Hata Düzeltmeleri

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

Harici Katkı

  • TextInputSession ve TextInputService'deki notifyFocusedRect yöntemlerinin desteği tekrar kaldırılmadı. (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ü bu taahhütleri içerir.

Yeni Özellikler

  • FlowRow ve FlowColumn artık ana eksende yeterli alan yoksa yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütuna dayalı düzenine olanak tanıyan @ExperimentalFoundationApi olarak kullanılabilir. (I3a7b2)
  • Modifier.basicMarquee(), kaydırmalı ışıklı reklam efekti içeren içerikler göstermek için deneysel olarak kullanılabilir. (I2df44, b/139321650)

API Değişiklikleri

  • FocusRequesterModifier desteği sonlandırıldı. FocusRequesterNode'e geçilmelidir (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)
  • variationSettings ile AndroidFont kurucusu artık kararlı bir API'dir ve yeni yazı tipi tanımlayıcısı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)
  • Mevcut öğeyi sabitlemeye olanak tanıyan yerel bir kompozisyon aracılığıyla, tembel listeler tarafından dağıtılan PinnableContainer api'yi kullanıma sundu. Bu, kaydırma çubuğuyla ekrandan uzaklaştırıldığında bu öğenin kaldırılmayacağı anlamına gelir. Örneğin, Modifier.focusable() bu mekanizma aracılığıyla şu anda odaklanan öğeyi sabitler. (Ib8881, b/259274257, b/195049010)
  • Bu işlemlerin karmaşıklığını daha iyi modellemek ve daha fazla uç durumu ele almak için kaydırılabilir öğelerin bringIntoViewRequesters ve odaklanılabilir öğelere yanıt verme şekli 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ü için boş değer kabul edilebilirlik durumu (Ibf7b0)
  • Metnin Static(default) veya Animasyonlu olarak tanımlanması için TextStyle alanına deneysel TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated değerini kullanın. (I24dd7)
  • Android platformu için odak gezinme davranışını düzeltmek üzere TextFieldFocusModifier ekleyin (I00303)
  • Diğer DrawScope işlevleriyle uyumlu 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, önceki varsayılan davranışı değiştirmez. (Icd27d)

Hata Düzeltmeleri

  • Daha doğal bir deneyim için SnapFlingBehaviour'teki sabitleme fiziğinde yapılan düzenlemeler.

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. Sorunun ilk olarak bildirildiği yer burada. Gönderilen düzeltme, bir sonraki Oluştur güncellemesinde kullanıma sunulacaktır. Bu sorunu geçici olarak çözmek için androidx.compose.material ve androidx.compose.material3 kitaplıklarınızı en son sürüme(1.1.0-alpha04) güncelleyin veya androidx.compose.foundation'nizi 1.4.0-alpha03 sürümüne geri alı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ü bu taahhütleri içerir.

API Değişiklikleri

  • Bir Oluşturma kuralı kullanan kullanıcı arayüzü testlerinde, withFrameNanos geri çağırmaları sırasında devam ettirilen devam ettirmeler, tüm çerçeve geri çağırmaları çalıştırılana kadar gönderilmez. Bu, normal şekilde çalışırken Oluştur'un davranışıyla aynıdır. Ancak eski davranışa dayanan testler başarısız olabilir. Bu durum yalnızca withFrameNanos veya withFrameMillis'ı doğrudan çağıran ve bu işlevlere geri çağırma dışında mantık aktaran kodları etkileyecektir. Bu kodların geri çağırma işlevlerinin içine taşınması gerekebilir. Animasyon testi değişikliklerine örnek olarak bu CL'de göz atın.
  • withFrameNanos geri çağırmalarından sonra ancak arayanların iş parçacıklarını devam ettirmeden önce kodu çalıştırmak için TestMonotonicFrameClock oluşturucuya ve fabrika işlevine isteğe bağlı onPerformTraversals: (Long) -> Unit parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)
  • Sayfa erişilebilirlik işlemleri tanıtılsın: PageUp, PageDown, PageLeft, PageRight. Bu özelliklerin yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab)
  • HorizontalPager ve VerticalPager'ü kullanıma sunduk. Bu iki özellik, bir sayfalayıcı şeklinde birleştirilebilir öğeleri göstermenin bir yoludur. PagerState, çağrı cihazlarını kontrol etmek ve çağrı cihazının mevcut durumuyla ilgili bilgileri sorgulamak için kullanıma sunuldu. Sayfalayıcı sayfasının boyutunu kontrol etmenin bir yolu olan PageSize özelliği kullanıma sunuldu. Bu özellik, sayfalayıcılar gibi bir bant oluşturmak için kullanılabilir. Sayfalayıcının kaydırma davranışında sabitlemenin nasıl çalışacağını kontrol etmenin bir yolu olan PagerSnapDistance özelliği kullanıma sunuldu. (I01120)
  • Atlamanın nereye yerleşeceğini anlamanıza yardımcı olmak için SnapFlingBehavior.performFling işlevinde aşırı yükleme özelliği eklendi. (I569f6)
  • OverscrollEffect#isEnabled kaldırıldı. Bu işareti hatırlayıp ayarlamak yerine, kaydırma taşmasının gösterilmesini istemediğiniz durumlarda (örneğin, ScrollableState#canScrollForward/backward her ikisi de yanlış döndürüyorsa) kaydırma taşması efektine etkinlik göndermeyin. (I1a4b0, b/255554340, b/255557085)
  • Bir ScrollableState öğesinin her iki yönde de kaydırma alanı olup olmadığını (aralığının minimum / maksimum değerinde olup olmadığını) sorgulamak için ScrollableState#canScrollForward ve ScrollableState#canScrollBackward eklendi. Bu ayar, ScrollableState'ün mevcut uygulamalarıyla geriye dönük uyumluluk için varsayılan olarak doğru değerine ayarlanır. Tüketiciler, kullanıcıya kaydırmaya devam edebileceğini göstermek için bu özelliği kullanabilir. Ayrıca, gereksiz çalışmaları azaltmak için belirli bir yönde kaydırmaya yer olmayan ScrollableStates öğesine delta göndermekten kaçınmak için de kullanılabilir. (Idf1a0, b/255557085)
  • Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API eklendi. (I2ba9d, b/203141462)
  • Hareketlerin kaydırma etkinlikleri haline gelebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için Clickable içinde kullanılır.
  • Clickables öğesinin, Scrollable ViewGroup içinde kullanıldığında dalgaların doğru şekilde geciktilmemesi sorunu düzeltildi.
  • Çekme panelleri ve sayfalar, hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda basmaları doğru şekilde geciktirmek için güncellendi.
  • snapStepSize adlandırmasını, SnapLayoutInfoProvider'daki diğer yöntemlerle tutarlı olacak şekilde güncelleyin. (Ife67c)
  • EmojiCompat, Compose'a eklendi (Ibf6f9, b/139326806)
  • consumedWindowInsets() consumeWindowInsets(), withConsumedWindowInsets() onConsumedWindowInsetsChanged() olarak yeniden adlandırıldı ve değiştiriciler herkese açık hale getirildi. (Ie44e1)

Hata Düzeltmeleri

  • Modifier.animateItemPlacement() ve Lazy grids ile ilgili kilitlenme düzeltildi. Bu durum, yeni öğe sayısı öncekinden daha az olduğunda bazı durumlarda 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ü bu taahhütleri içerir.

API Değişiklikleri

  • awaitFirstDown ve waitForUpOrCancellation artık daha fazla esneklik için PointerEventPass kabul ediyor. (I7579a, b/212091796)
  • beyondBoundCount API'yi Lazy* API'lerden geri alma (I12197)
  • Görüntü alanı dışındaki öğeleri oluşturmak ve yerleştirmek için Lazy API'lerde parametre kullanıma sunuldu (I69e89, b/172029355)
  • BasicText ve BasicTextField öğesine minLines parametresi eklendi. Bu bileşenlerin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I24294, b/122476634)

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ü bu taahhütleri içerir.

API Değişiklikleri

  • Hareket algılayıcılar için awaitEachGesture() adlı yeni bir yöntem eklendi. forEachGesture()'e benzer şekilde çalışır ancak hareketler üzerinde döngü tamamen AwaitPointerEventScope içinde çalıştığından etkinlikler iterasyonlar arasında kaybolmaz.
  • forEachGesture(), hareketler arasında etkinliklerin kaybolmasına neden olduğu için desteği sonlandırıldı ve awaitEachGesture() ile değiştirildi. (Iffc3f, b/251260206)
  • Animasyon ilerleme durumunu belirlemek ve animasyon tamamlandıktan sonra IME'nin nerede olacağını öğrenmek için WindowInsets.imeAnimationSource ve WindowInsets.imeAnimationTarget eklendi. (I356f1, b/217770337)

Sürüm 1.3

1.3.1 sürümü

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ü bu taahhütleri içerir.

Hata Düzeltmeleri

  • BeyondBoundsLayout'teki performans sorununu düzeltme (aosp/2255266)
  • ContentInViewModifier, eklenmesi durumunda düzen koordinatlarını okumaz (aosp/2241316)

1.3.0 sürümü

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ü bu taahhütleri içerir.

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

  • LazyVerticalStaggeredGrid ve LazyHorizontalStaggeredGrid'un deneysel sürümleri kullanıma sunuldu.
  • SnapFlingBehavior, rememberSnapFlingBehavior ve ilgili diğer API'ler deneysel olarak eklendi.
  • Modifier.clickable, Modifier.toggleable ve Modifier.selectable düğmeleri artık klavye veya uzaktan kumandadaki d-pad ile tıklandığında dalgalanma 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Yaklaşma adımı tarafından, azalmak için yeterli fırlatma hızı olmadığında kullanılan lowVelocityAnimationSpec tanıtıldı. (Iaeb27)
  • Metinde otomatik tire eklemeyi desteklemek için yeni deneysel API Tire 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Metinde satır aralarını özelleştirmek için seçenekler ekleyin. (I86907)
  • BringIntoViewResponder'ler artık bir isteği işlerken en güncel sınırları alabilir. (If86a5, b/241591211)
  • Deneysel Staggered Grid (I10b82) sürümünde öğeler arasındaki boşluklar için destek sunuldu
  • Deneysel Staggered Grid'e içerik doldurma özelliğini ekleme (I342ea)
  • 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)
  • windowInsetsPadding dışında kullanılmak üzere WindowInsets tüketileceği için Modifier.withConsumedWindowInsets() eklendi.
  • Yeniden derleme yapmadan WindowInsets öğesini kolayca değiştirmeye olanak tanımak için MutableWindowInsets 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Deneysel StaggeredGrid'ün ilk sürümü (Ia48be)
  • FocusDirection.In ve FocusDirection.Out, FocusDirection.Enter ve FocusDirection.Exit olarak yeniden adlandırıldı (Ia4262, b/183746982)
  • LazyLists'te sabitlemeyi hızlı bir şekilde etkinleştirmenin yolunu sağlayan bir rememberSnapFlingBehavior aşırı yükleme işlevi kullanıma sunuldu. (Ifb48a)
  • snapFlingBehavior fabrikası, somut bir SnapFlingBehavior sınıfıyla değiştirildi. Dp<->Px dönüşümlerini API kullanıcıları için daha kolay hale getirmek amacıyla SnapLayoutInfoProvider yöntemlerini yoğunluk için kapsamlı hale getirdik. (I54a11)
  • LazyLayoutMeasureScope.measure parametresini, döndürülen değerin istenilen şekilde değiştirilemezliğini vurgulayarak yerleşebilir öğelerin listesini döndürecek şekilde güncelleyin. (I48b7c)
  • LazyLists için FlingBehavior anlık görüntüsünü etkinleştirmek üzere kullanılabilecek bir SnapLayoutInfoProvider örneği oluşturmak için LazyListState alan SnapLayoutInfoProvider işlevi kullanıma sunuldu. (I2dd10)

Hata Düzeltmeleri

  • AwaitPointerEventScope#awaitLongPressOrCancellation'ü diğer bekleme işlevleriyle eşleşecek şekilde yeniden işler (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ü bu taahhütleri içerir.

API Değişiklikleri

  • pointerPosition, OverscrollEffect'ten kaldırıldı: İşaretçi konumuyla ilgilenen efektler, mevcut işaretçi konumunu almak için effectModifier'teki Modifier.pointerInput { }'yi kullanabilir. (I9f606, b/241239306)
  • Daha karmaşık hareket algılama için ek yapı taşı olarak AwaitPointerEventScope#awaitLongPressOrCancellation kullanıma sunuldu (I04374, b/181577176)
  • Eşleme özelliğini etkinleştirmek için lazyListSnapLayoutInfoProvider özelliğini Eşlemesiz Listeler'e ekledik. (I3ecdf)
  • Liste sabitlemeyi sağlayan bir fırlatma davranışı olan SnapFlingBehavior kullanıma sunuldu. SnapLayoutInfoProvider örneği sağlayın. Bu örnekte, sabitleme düzeninizle ilgili bilgiler yer almalıdır. (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ü bu taahhütleri içerir.

API Değişiklikleri

  • Kaynak Yazı Tipleri artık yazı tipi varyantı ayarlarını desteklemektedir (API 26 ve sonraki sürümler). (I900dd, b/143703328)
  • DeviceFontFamilyNameFont'te değişken yazı tipi desteği (Ic1279, b/143703328)
  • Deneme amaçlı ek açıklama, PlatformTextStyle ve LineHeightStyle öğelerinden kaldırıldı. (I64bef)
  • Bir VisualTransformation tarafından sağlanan OffsetMapping geçersiz dizinler döndürdüğünde metin alanları artık daha ayrıntılı istisnalar atar. (Ie73f9, b/229378536)
  • Eşlenmemiş düzenler arasında öğe sağlayıcı mantığını paylaşmak için deneysel API'ler kullanıma sunuldu. (Ic891c)
  • ScrollableDefaults.reverseDirection() artık deneme aşamasında değil. (Iba646)
  • SemanticsModifier.id desteği sonlandırıldı ve semantik kimliği LayoutInfo.semanticsId olarak değiştirildi. (Iac808, b/203559524)
  • checkScrollableContainerConstraints() artık deneme aşamasında değil. (I2c290)
  • Modifier.clipScrollableContainer() artık deneme aşamasında değil. (Ia2b44)
  • TextInputService.show|hideSoftwareKeyboard öğesini kullanımdan kaldırın. Lütfen uygulama kodunda bunun yerine SoftwareKeyboardController ve IME yönetim kodunda 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ü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Artık bir metin alanı odaklanırken devre dışı bırakıldığında dokunmatik klavye gizlenecek. (I6e3e4, b/237308379)
  • Hız İzleyici'ye InputEventChange etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hız tüm durumlarda doğru şekilde hesaplanır (Icea9d, b/216582726, b/223440806, b/227709803)
  • Kaydırılabilir bir öğenin odaklanmış bir alt öğesi olduğunda, boyutu azaltıldığında (animasyonlu olsa bile) odaklanmış alt öğeyi görünümde tutmak için artık doğru şekilde kaydırılır. (I80867, b/230756508, b/220119990)
  • Seçim etkinken TextField'ün temizlenmesi ve yeniden doldurulmasına yol açan kilitlenme 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ü bu taahhütleri içerir.

API Değişiklikleri

  • AnnotatedString'lerde TalkBack bağlantı desteğini desteklemek için UrlAnnotation ek açıklama türünü ve ilişkili yöntemleri kullanıma sundu. (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ü bu taahhütleri 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ü bu taahhütleri içerir.

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

  • LazyVerticalGrid ve LazyHorizontalGrid artık kararlı.
  • Artık, yavaş listeler ve ızgaralardaki öğeler için içerik türü belirtebilirsiniz. Bu sayede bileşenler öğeleri daha verimli bir şekilde yeniden kullanabilir.
  • Eşzamanlı olmayan listeler ve ızgaralarda artık kullanıcı hareketleriyle kaydırma özelliğini devre dışı bırakmaya olanak tanıyan userScrollEnabled parametresi bulunuyor.
  • LazyLayout adlı yeni bir deneysel API eklendi. Bu, yavaş listeleri ve tabloları desteklemek için dahili olarak kullandığımız API'dir.
  • OverscrollEffect API, deneysel olarak kullanıma sunulmuştur. Özel kaydırma efektleri tanımlamanın yanı sıra özel kaydırılabilir kapsayıcılara standart bir platform efekti de ekleyebilirsiniz.
  • Görünümler ile kaydırma yapan aktörler arasında birlikte çalışabilirlik sağlamak için iç içe yerleştirilmiş kaydırma birlikte çalışabilirlik API'leri kullanıma sunuldu.
  • Fare ve dokunmatik yüzey kaydırma özelliği tüm kaydırılabilir kapsayıcılara 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ü bu taahhütleri içerir.

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

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ü bu taahhütleri 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Özel kaydırma efektlerine izin vermek için deneysel bir OverscrollEffect ve bunu kabul eden Modifier.scrollable aşırı yüklemeleri kullanıma sunuldu.
  • Deneysel LocalOverScrollConfiguration, foundation.gesture'ten temel pakete taşındı ve LocalOverscrollConfiguration olarak yeniden adlandırıldı (If19fb, b/204650733)
  • Oluşturma kitaplarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
  • Kaydırılabilir kapsayıcıları iç içe yerleştirmediğimizi kontrol etmemizi sağlayan deneysel bir api checkScrollableContainerConstraints() kullanıma sunuldu. LazyLayout aracılığıyla kendi kaydırılabilir, gecikmeli düzenlerinizi oluştururken kullanabilirsiniz. (Id6fab, b/233352497)
  • Desteği sonlandırılan LazyVerticalGrid, androidx.compose.foundation.lazy paketinden kaldırıldı. Yeni kararlı API, androidx.compose.foundation.lazy.grid (I73c76, b/225192009) adresinde yer alır.

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ü bu taahhütleri içerir.

API Değişiklikleri

  • Yeni deneysel IntervalList ve MutableIntervalList eklendi. Bazı değer listelerinin birden fazla aralık üzerinden gösterilmesine olanak tanır. Liste öğelerinin birden fazla item/items çağrısı aracılığıyla tanımlanabildiği LazyColumn tarafından kullanılana benzer bir dsl tanımlamak istediğinizde bu işlevden yararlanabilirsiniz. (I2d05e, b/228580728)

Hata Düzeltmeleri

  • WindowInsets.ime dokümanlarında, ime iç içe yerleştirilmiş öğelerinin API 23'ten beri raporlandığını ancak 30 ve sonraki sürümlerde yalnızca animasyonlu olarak raporlandığını belirtmek için açıklama yapıldı. (Ia7fc0, b/230756508)
  • İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme yaşanmaz.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand için artık kurucu bağımsız değişkenlerinin negatif olmaması gerekiyor. (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ü bu taahhütleri içerir.

  • Metin veya TextField öğesinin yerleşim boyutunu değiştirmeyen indirilebilir yazı tipi çözünürlüğü daha önce yeniden çizilmiyordu ve bu da yazı tipinin eski görüntülenmesine neden oluyordu. Bu hata düzeltmesi, metin düzeninin her zaman yeniden çizmeyi 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ü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Öğeleri görünür sınırların ötesinde düzenlerken LazyList'ın özel uygulamalarının kullanabileceği deneysel BeyondBoundsInterval eklendi (Ifabfb, b/184670295)
  • LineHeightBehavior, LineHeightStyle olarak yeniden adlandırıldı
  • LineVerticalAlignment, LineHeightStyle.Alignment olarak yeniden adlandırıldı
  • Yeniden adlandırma LineHeightTrim, LineHeightStyle.Trim olarak yeniden adlandırıldı
  • LineHeightStyle kapsamındaki varsayılan kurucu 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, birleştirilebilir lambda'yı dizinle döndüren bir fabrika yerine artık dizinini kabul eden daha basit bir birleştirilebilir işlev öğesine sahibiz. (Id2196)
  • LazyLayoutItemsProvider, LazyLayoutItemProvider olarak yeniden adlandırıldı (I0638c)
  • LazyLayoutItemsProvider.itemsCount, itemCount olarak yeniden adlandırılır (Id409c)
  • Gradyan renklendirmeli metin çizme seçeneği sunmak için TextStyle ve SpanStyle'e Fırça eklendi. (I53869, b/187839528)
  • LineHeightBehavior öğesinin trimFirstLineTop, trimLastLineBottom özellikleri tek bir enum olarak değiştirildi: LineHeightTrim. LineHeightTrim, iki doğrusal mantık değeriyle tanımlanan 4 durum değerine sahiptir: FirstLineTop, LastLineBottom, Her ikisi ve Yok (Ifc6a5, b/181155707)
  • TextStyle öğesine LineHeightBehavior eklendi ve ParagraphStyle. LineHeightBehavior, 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ı kontrol eder. Ayrıca, TextStyle(lineHeight) tarafından sağlanan alanda 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 etmek mümkündür.

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

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

Hata Düzeltmeleri

  • Metin alanları, odaklanılmış durumdayken kompozisyondan kaldırıldığında klavyeyi gizlememesiyle ilgili gerileme düzeltildi. (I7a410, b/230536793, b/225541817)
  • Yükseklik sınırlı olduğunda ve tüm metin satırlarına sığmadığında üç noktayı destekleme (Ie528c, b/168720622)
  • BringIntoViewRequester.bringIntoView artık istek tamamlanana veya yeni ve çakışmayan bir istek tarafından kesintiye uğrayana kadar her zaman askıya alınır. Çakışan istekler sıraya alınır. (I43e7f, b/216790855)
  • Tamamen örtüşen dikdörtgenler için eşzamanlı BringIntoViewRequester.bringIntoView çağrıları artık yalnızca daha büyük dikdörtgenin isteğini dikkate alır. (I34be7, b/216790855, b/184760918)
  • Varsayılan olarak etkin includeFontPadding. TextStyle.platformTextStyle özelliğini kullanarak includeFontPadding'ü devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak bu zamana kadar satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre edebilecek ve TextField kırpma sorunlarını çözebileceğiz. (I01423, b/171394808)
  • Modifier.bringIntoViewRequester artık onGloballyPositioned'ı kullanmıyor. (I630f5)

Harici Katkı

  • Dikey olarak kaydırırsak Android'de MouseInjectionScope.scroll(delta = someDelta) artık ters çevrilir (someDelta pozitifse aşağı doğru kayar) (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ü bu taahhütleri içerir.

API Değişiklikleri

  • FontFamily.SansSerif kullanırken Android'deki sistem yazı tipleri için kullanılabilen tüm ağırlıkları gösterin. Bu durumda, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adları kullanılır. API 21-28'de daha önce yalnızca 400 ve 700 ağırlıkları destekleniyordu. Bu nedenle, bu bir davranış değişikliğidir. (I380fe, b/156048036, b/226441992)
  • Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor. Constraints.maxHeight parametresi şu anda herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre elips oluşturma gibi bazı hesaplamalar yapmanıza olanak tanır. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() artık içine yeni öğe eklenmesine izin vermeyen özel bir MutableSet benzeri sınıfı kabul ediyor. (Icd314)
  • Kısmi tüketim (aşağı VEYA konum) özelliği PointerInputChange sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak için consume() kullanabilirsiniz. Değişikliğin daha önce başka bir kullanıcı tarafından tüketilip tüketilmediğini belirlemek için isConsumed değerini kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturuyor. Bu, PointerInputChange kopyalarının, kopyalardan biri tüketildikten sonra tüketileceği anlamına gelir. Bağlantısız bir PointerInputChange oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)
  • Yeni deneysel LazyLayout API kullanıma sunulmuştur. Bu sayede LazyVerticalGrid'un LazyColumn gibi kendi bileşenlerinizi oluşturabilirsiniz. API'nin henüz erken aşamalarında olduğunu ve gelecekteki sürümlerde değişebileceğini unutmayın. (Iba2bc, b/166591700)
  • AndroidFont artık oluşturucu parametresi olarak typefaceLoader değerini alıyor. (I2c971)
  • WindowInsets tamamlayıcısı artık görünürlüğü (pencereyle kesişmelerinden bağımsız olarak ekranda olup olmadıklarını) ve cihazda mevcut olsalar da şu anda etkin değillerse ne kadar büyük olabileceklerini gösterir. (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ü bu taahhütleri içerir.

API Değişiklikleri

  • Tembel düzenlerin alt öğelerinin, şu anda oluşturulmuş öğelerin kaldırılmasını engellemesine olanak tanıyan bir PinnableParent API eklendi (Ibbdd0, b/184670295)
  • LazyListLayoutInfo ve LazyGridLayoutInfo'te artık beforeContentPadding ve afterContentPadding alanları var (I3b628, b/200920410)
  • IME'ye ondalık ayırıcıyı özel olarak dahil etmek için Keyboard.Number yerine KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • Yazı tipi yedekleme zincirleri sırasında isteğe bağlı olarak sistemde yüklü yazı tiplerini aramak için yeni yazı tipi tanımlayıcısı Font(DeviceFontFamilyName) ekleyin. (I30468, b/219754572)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'lerdir (I574c5, b/225669674)
  • TextStyle/ParagraphStyle. includeFontPadding'da includeFontPadding için eklenen geçici uyumluluk yapılandırması TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) üzerinden değiştirilebilir. Bu, taşıma işlemini etkinleştirmek için kullanılan geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808)
  • Sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için FontFamily.Resolver güncellendi (I6c1e7)
  • ComposeView öğesinin consumeWindowInsets uzantı mülkü, geliştiricilerin Android WindowInsets tüketimini devre dışı bırakmasına olanak tanır. Bu sayede hiyerarşide ayrı ComposeViews'lerin her biri, birbirine müdahale etmeden 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Odaklanabilir hedefe odaklanmayı istemek için RequestFocus semantik işlemi eklendi. (I17b71)
  • FocusOrder artık FocusProperties ile birleştirildi ve focusProperties(), focusOrder()'ın tüm özelliklerine sahip oldu. FocusOrder ve focusOrder() desteği sonlandırıldı. focusRequester kabul eden focusOrder(), focusProperties() ile birlikte bir focusRequester() değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler daha güçlü bir sorumluluk ayrımı elde eder. (I601b7)
  • WindowInsets.asPaddingValues(Density), geliştiricilerin kompozisyonda olmak zorunda kalmadan dönüşümü yapmasına olanak tanımak için eklenmiştir. (I94c35)
  • Mevcut düzen yönü RTL ise VectorPainter içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırması güncellendi. (I79cd9, b/185760237)

Hata Düzeltmeleri

  • Kaydırma alanı yeniden boyutlandırılırsa ve odaklanan kompozisyon daha önce görünür durumdaysa kaydırma değiştiricileri (Modifier.verticalScroll(),Modifier.horizontalScroll() ve Modifier.scrollable()) artık odaklanan kompozisyonu görünür tutmak için kaydıracaktır.
  • Metin alanları artık odaklandığında ve klavye gösterildiğinde, klavyenin üzerinde tutulur. Bu durum, klavye kaydırma özelliği devre dışıyken ve yumuşak giriş modu ADJUST_RESIZE olduğunda geçerlidir. (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ü bu taahhütleri içerir.

API Değişiklikleri

  • LazyVerticalGrid ve LazyHorizontalGrid artık kararlı. (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 ile androidx.compose.foundation.lazy.grid arasındaki içe aktarma işlemlerinizi güncelleyin. (I2d446, b/219942574)
  • Metin: includeFontPadding artık varsayılan olarak kapalıdır. includeFontPadding=false nedeniyle ortaya çıkan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmayacak. (I31c84, b/171394808)
  • Ölçülen arayüz artık parentData mülkünü (I3313f) gösterir.
  • Alt öğelerin odaklanılabilirlik sınırlarını gözlemlemenize olanak tanımak için deneysel Modifier.onFocusedBoundsChanged özelliği kullanıma sunuldu. (I14283, b/220030968, b/190539358, b/192043120, b/216842427)
  • LazyHorizontalGrid eklendi. (I61ae7, b/191238807)
  • Eksenler arası boyutları tanımlamak için yeni bir LazyVerticalGrid API eklendi (I17723)
  • FocusGroup değiştirici eklendi (I64bc0, b/213508274, b/184670295)

Hata Düzeltmeleri

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

Harici Katkı

  • Kotlinx coroutines 1.6.0 (I3366d) sürümünü kullanacak şekilde güncellendi

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ü bu taahhütleri içerir.

API Değişiklikleri

  • BringIntoViewResponders'lerin artık istekleri üst yanıt verenlere manuel olarak iletmesi gerekmez. Bunun yerine, üstlerinin görüntülemesini istedikleri dikdörtgeni hemen döndürmeleri gerekir. (I8e66a)
  • Metinde eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
  • LazyVerticalGrid artık mevcut satıra sığmayan span'a sahip öğelerden önce line breaking'ı destekliyor. (I05c40, b/207462103)
  • excludeFromSystemGestures, systemGesturesExclusion olarak yeniden adlandırıldı (I19526)
  • LazyVerticalGrid artık reverseLayout özelliğini destekliyor. (I6d7d7, b/215572963, b/211753558)
  • Geliştiricilerin yalnızca WindowInsets'ten boyutlar eklemesine izin vermek için WindowInsets.only() yöntemini ekleyin. (I14c94, b/217768486)
  • Bir birleştirilebilir işlevin, kullanılmak üzere tasarlanmadığı bir uygulayıcı hedeflendiğinde derleme zamanında raporlanmasına olanak tanıyan ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget eklendi.

    Çoğu durumda ek açıklamaları, derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaları doğrudan kullanmak nadir bir durumdur. Özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), birleştirilebilir lambda olan alanlar veya global değişkenler (yerel değişkenler ve parametreler çıkarılır) veya ComposeNode ya da ilgili birleştirilebilir işlevler kullanıldığında çıkarım yapılamaz.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode'yi çağıran birleştirilebilir işlevlerin, işlev ve tüm birleştirilebilir lambda parametresi türleri için bir CompoableTarget ek açıklaması eklemesi gerekir. Bununla birlikte, ComposableTargetMarker ile ek açıklama içeren bir ek açıklama oluşturmanız ve ardından doğrudan ComposableTarget yerine işaretlenmiş ek açıklamayı kullanmanız önerilir. ComposableTargetMarker ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özellik sınıfının tam nitelikli adının yer aldığı bir ComposbleTarget ile eşdeğerdir. ComposableTargetMarker kullanımıyla ilgili bir örnek için anroidx.compose.ui.UiComposable bölümüne bakın. (I38f11)

Hata Düzeltmeleri

  • Artık LazyGridState.scrollToItem() ve LazyGridState.animateScrollToItem()'e negatif kaydırma ofsetleri iletilmesine izin verilmektedir. (I025c6, b/211753558)
  • TextField için eşzamansız yazı tipi yüklemeyi destekleyin. (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ü bu taahhütleri içerir.

API Değişiklikleri

  • TextInputSession ve TextInputService içindeki notifyFocusedRect yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerine BringIntoViewRequester kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)
  • Modifier.animateItemPlacement() ile, gecikmeli ızgaralardaki öğeler için animasyonlar etkinleştirildi. (Ib6621, b/211753218)
  • BringIntoViewRequester artık istekleri barındıran Android Görünümü'ne iletiyor. (Ia7a51)
  • FontFamilyResolver artık LocalFontFamilyResolver.current üzerinden kullanılabilir
    • Oluşturma kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için createFontFamilyResolver(context) ve createFontFamilyResolver(context, coroutineScope) eklendi.
    • Paragraf ve ÇokluParagraf öğeleri artık FontFamily.Resolver
    • TextLayoutResult.layoutInput.fontFamilyResolver artık bu düzen için kullanılan çözümleyiciyi içeriyor. Artık kullanılmadığı için TextLayoutResult.layoutInput.resourceLoader kullanımdan kaldırıldı. (Id5a45, b/174162090)
  • Android'de yeni yazı tipi kaynak tanımlayıcı türleri sağlamak için yeni bir düşük düzey API olan AndroidFont eklendi. Örneğin, yazı tiplerini uygulamaya özel bir arka uçtan yükleme, isteğe bağlı olarak önceden yüklenmiş yazı tiplerini cihazda bulma veya yazı tiplerini mevcut yazı tipi fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.
    • Font.ResourceLoaded API'si, isteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için 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, beste dışındayken Font.ResourceLoader oluşturmaya olanak tanır.
    • Kaynak yazı tipi indirilebilir yazı tipi XML'ine referans verdiğinde, kaynak tabanlı yazı tiplerine loadingStrategy parametresi eklendi. Bu parametre, yazı tipinin ayarsız olarak yüklenmesine olanak tanır. (Ie5aea, b/174162090)
  • Typeface(FontFamily) oluşturucunun desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri için bu işlem 10 saniye kadar sürebilir. İndirilebilir yazı tiplerinde bu çağrı 10 saniye boyunca engellenebilir. Bunun yerine FontFamilyResolver.preload
    • fontResource(FontFamily): Typeface desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri için bu işlem 10 saniye kadar sürebilir. Bunun yerine FontFamilyResolver.preload (If8e7c, b/174162090) kullanın.
  • Artık LazyVerticalGrid öğelerinin içerik türünü belirtebilirsiniz. LazyGridScope'teki item/items işlevleri artık bu tür parametreleri kabul ediyor. Bu tür bilgileri sağlamak, öğe kompozisyonunun mantığını yeniden kullanarak daha verimli hale gelmesine ve yalnızca benzer türdeki öğeler arasında içeriğin yeniden kullanılmasına yardımcı olur. (I7b355, b/215372836)
  • LazyListLayoutInfo ve LazyGridLayoutInfo'da yeni özellikler eklendi: viewportSize, orientation, reverseLayout (Ifc8ed, b/200920410)
  • Artık LazyColumn/LazyRow öğelerinin içerik türünü belirtebilirsiniz. LazyListScope'taki item/items işlevleri artık bu tür parametreleri kabul etmektedir. Bu tür bilgileri sağlamak, öğe kompozisyonunun mantığını yeniden kullanarak daha verimli hale gelmesine ve yalnızca benzer türdeki öğeler arasında içeriğin yeniden kullanılmasına yardımcı olur. (I26506)
  • maxSlotsToRetainForReuse kabul eden SubcomposeLayoutState kurucusunun desteği sonlandırıldı. Bunun yerine, SubcomposeSlotReusePolicy değerini kabul eden yeni bir kurucu vardır. Bu yeni arayüz, gelecekte yeniden kullanılmak üzere hangi yuvaların tutulacağı konusunda daha ayrıntılı kontrol sağlar. (I52c4d)
  • Hem dolgu hem de boyutlandırma için WindowInsets için değiştiriciler ekler. Bu sayede bazı içerikler içe yerleştirilmiş alana sığabilir ve birincil içerik içe yerleştirilmiş alanın dışında kalabilir. Örneğin, windowInsetsPadding, tamamen veya kısmen örtülebilecek alanları önlemek için içerik alanını doldurmak amacıyla kullanılabilir. (Id0395, b/213942085)

Hata Düzeltmeleri

  • Artık metin alanları, odaklanıldığında ve yumuşak giriş modu ADJUST_PAN olduğunda klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120)
  • Masaüstü, FontFamily.Resolver için yerel kompozisyon kullanır
    • FontLoader masaüstü sürümü desteği sonlandırıldı
    • Masaüstünde yeni createFontFamilyResolver fabrikası (I6bbbb, b/174162090)
  • Metin alanları arasında odağı değiştirirken artık dokunmatik klavye giriş türü yanıp sönmüyor. (I1bf50, b/187746439)
  • Metin alanlarında, imleç çubuğu gösterilirken artık ekstra bir geri tuşuna basılması gerekmez. (Ideb4b, b/205726883)
  • Metin seçimi büyüteç davranışı, platform büyüteçiyle eşleşecek şekilde düzeltildi. (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ü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Metin seçimi büyüteç davranışı, platform büyüteçiyle eşleşecek şekilde düzeltildi. (Idd918, b/206833278)
  • LazyColumn, LazyRow, Modifier.verticalScroll ve Modifier.scrollable kullanan diğer kapsayıcılar artık fare tekerleği kaydırma özelliğini 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ü bu taahhütleri 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ırma özelliğini geçici veya kalıcı olarak devre dışı bırakmasına olanak tanımak için LazyColumn, LazyRow ve LazyVerticalGrid parametrelerine yeni userScrollEnabled parametresi eklendi. Durumdaki yöntemler aracılığıyla programatik olarak kaydırmaya yine izin verilecek. (I7eae9, b/201150093)
  • Büyüteç değiştiriciye onSizeChanged geri çağırma işlevi ekleyin. (I6879f)
  • Büyüteç widget'ı artık SelectionContainer içinde seçim tutamaçlarını sürüklediğinizde gösterilir. (I30b38, b/139320979)

Hata Düzeltmeleri

  • Ekran kaydırıldığında TextField imleci tutamacının görünmeye devam etmesiyle ilgili sorun düzeltildi. (I14552, b/208883748)

Bağımlılık Güncellemeleri

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

Sürüm 1.1

1.1.1 sürümü

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ü bu taahhütleri içerir.

Hata Düzeltmeleri

1.1.0 sürümü

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ü bu taahhütleri içerir.

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

  • Android 12 aşırı kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmasında iyileştirmeler
  • Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılamak üzere düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük olarak ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişler. Bu sayede, Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış elde edersiniz. Bu değişiklik, kullanıcı arayüzünüzü Compose Material bileşenlerini kullanarak oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
  • Gezinme çubuğu için kararlı destek
  • Daha önce deneysel olan bazı API'leri kararlı sürüme geçiriyor
  • Kotlin'in daha 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ü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Compose Material 1.1.0-rc03'ü desteklemek için 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ü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Artık LazyListState.scrollToItem() ve LazyListState.animateScrollToItem()'e negatif kaydırma ofsetleri iletilmesine izin verilmektedir. (Iceb90, b/184252837)
  • Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir 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ü bu taahhütleri içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi

API Değişiklikleri

  • androidx.core.view(I7078a, b/204917439) dosyasında boşluk değeri temizlendi
  • PointerInputchange'i bir bütün olarak kullanmaya veya tüketilip tüketilmediğini kontrol etmeye olanak tanıyan deneysel API'ler eklendi. (I2e59d)
  • Metin alanlarında imleci veya seçim tutamacını sürüklerken büyüteç widget'ını gösterin. (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ü bu taahhütleri içerir.

API Değişiklikleri

  • LazyVerticalGrid'e yatay aralıklar için destek eklendi. (I7e2fa, b/176758183)
  • Eşlenmemiş liste öğelerinin konumlarını animasyonlu hale getirme özelliği deneysel olarak eklendi. LazyItemScope içinde Modifier.animateItemPlacement() adlı yeni bir değiştirici mevcuttur. 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, öğe yeniden sıralama animasyonlarını etkinleştirir. Öğelerin yeniden sıralanmasının yanı sıra düzenleme veya hizalama değişiklikleri gibi etkinliklerin neden olduğu diğer tüm konum değişiklikleri de animasyonlu olarak gösterilir. (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ü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Dalgalanma ve diğer göstergeler artık her zaman kapalı etkinliği için geciktirilmek yerine yalnızca bir Modifier.scrollable() kapsayıcı içindeyse geciktirilecek. (Ibefe0, b/203141462)
  • Ebeveynlere bir öğeyi görüntüye getirmek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel BringIntoView API eklendi (Ib918d, b/195353459)

Harici Katkı

  • Modifier.pointerHoverIcon (I95f01) eklendi

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ü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Ebeveynlere bir öğeyi görüntüye getirmek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel BringIntoView API 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ı. 1.1.0-alpha06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Daha verimli bir şekilde, düzen için alt öğe içermeyen bir aşırı yükleme eklendi (Ib0d9a)
  • SemanticsNodeInteraction.performSemanticsAction artık işlevin çağrıldığı SemanticsNodeInteraction değerini döndürür. (I9e5db)
  • Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştirici tarafından eşleştirilen içeriğe kaydıran performScrollToNode(matcher: SemanticsMatcher) 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ü bu taahhütleri içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • Kaydırmayla ilgili olarak kaydırılabilir öğeler (hem gecikmeli hem de gecikmeli 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ü bu taahhütleri içerir.

API Değişiklikleri

  • performGesture ve GestureScope kullanımdan kaldırıldı ve bunların yerine performTouchInput ve TouchInjectionScope getirildi. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için SemanticsNode öğesine minimum dokunma hedefi boyutunu içeren touchBoundsInRoot 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ü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Kaydırma için parlama efekti eklendi. Aşırı kaydırma görsel efektinin yapılandırılmasına olanak tanımak için yeni deneysel OverScrollConfiguration API eklendi. Ekranın aşırı kaydırma efektini devre dışı bırakmak için null değerini girin. (I0c304, b/171682480)
  • AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() işlevlerine sahiptir (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 ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. Bu boyut, semantikte ve işaretçi girişinde kullanılabilir. (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ü bu taahhütleri 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ü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Eşzamanlı olmayan listeler ve normal kaydırma bileşenleri için anlambilim işlemleri aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)

Harici Katkı

  • 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ü bu taahhütleri içerir.

Hata Düzeltmeleri

  • derivedStateOf örneklerini izlemeyle ilgili bir kilitlenme 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ü bu taahhütleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.31'e bağlı 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ü bu taahhütleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.30'e bağlı 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ü bu taahhütleri içerir.

Oluştur 1.0.2 sürümünü desteklemek için güncellendi. Compose 1.0.2, Kotlin 1.5.21 ile uyumludur.

1.0.1 sürümü

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ü bu taahhütleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.21'e 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ü bu taahhütleri içerir.

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

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose sürüm 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 kilitlenmeyi görebilirsiniz:

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

    Bu sorunu düzeltmek için build.gradle dosyanızdaki minSdkVersion değerini geçici olarak 24 veya daha yüksek bir değere ayarlayın. Bu sorun, Android Studio Bumblebee ve AGP'nin sonraki sürümünde 7.1 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ü bu taahhütleri içerir.

  • Sabit boyutlarla tanımlanan yollarla ilgili sorunları gidermek için genel şekiller için kenar 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ü bu taahhütleri 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 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ü bu taahhütleri içerir.

API Değişiklikleri

  • ManualFrameClock kaldırıldı. Animasyonları kontrol etmeniz gerekiyorsa bunun yerine composeTestRule.mainClock seçeneğini kullanın. (I3c3e8, b/189951065)
  • enum Role ve LiveRegionMode'u özel yapıcılı satır içi sınıflara dönüştürün (Id1890)
  • 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ülür. (I433af)

Hata Düzeltmeleri

  • Artık LazyColumn/Row öğeleri için benzersiz anahtarları belirttiğinizde kaydırma konumu anahtara göre korunur. Diğer bir deyişle, mevcut görünür öğeden önce öğe eklerseniz/kaldırırsanız belirtilen anahtara sahip öğe ilk görünür öğe olarak tutulur. (Id263f, b/184257857)
  • Anahtar sabitler şu anda @ExperimentalComposeUiApi. Kodu kullananlar, kararlı hale gelmeden önce özel sabitler tanımlayabilir. (Ia5d48)
  • AndroidComposeTestRule'a, beklemek veya sessizliğe ulaşmak için alternatif bir mekanizma yüklemek üzere test çerçeveleri tarafından kullanılabilecek IdlingStrategy eklendi. Testiniz başlamadan önce AndroidComposeTestRule.setIdlingStrategyFactory()'ü kullanarak kendi stratejinizi yükleyin. (I608fa)

Profil Kuralları eklendi

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

  • 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 baseline-prof.txt metin dosyasında belirtilir. Dosyada satır başına bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme için kullanılan bir kalıptır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan, okunabilir ART profil biçiminin bir üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

  • Yöntem kuralları aşağıdaki kalıba sahiptir:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralları ise aşağıdaki kalıba sahiptir:

    <CLASS_DESCRIPTOR>
    
  • Burada <FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için H, S ve P karakterlerinden biri 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ı değeri Landroidx/compose/runtime/SlotTable; olur.

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

  • Tek bir kuralın birden fazla yöntemi veya sınıfı kapsayabilmesi için bu kalıplarda joker karakterler (**, * ve ?) bulunabilir.

Kurallar ne işe yarar?

  • H işareti bulunan bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.

  • S işareti bulunan bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve yöntemin başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.

  • P işareti olan bir yöntem, başlangıçtan sonra çağrılan bir yöntem olduğunu gösterir.

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

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Daha sonra bu yapıları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özgü kompakt bir ikili ART profili oluşturmak için kullanılır. Ardından ART, uygulamanın performansını (özellikle de ilk çalıştırmayı) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bu durumun, hata ayıklama yapılabilir 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ü bu taahhütleri içerir.

API Değişiklikleri

  • NestedScrollSource enum, satır içi bir sınıfla değiştirildi. (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 yapılandırıldı. (I2b5eb)
  • Kaydırma/sürükleme sırasında dalgalanma gösterilmesini önlemek için tıklanabilir/açma/kapatma düğmeli öğelere dokunma zaman aşımı ekler (Ia2704, b/168524931)
  • ContentDescription ve Text semantics özellikleri artık tek değer değil liste şeklindedir. Bu sayede, bunları birleştirirken birleştirme yerine olduğu gibi birleştirebilirsiniz. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri de 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 değiştirildi (Iccc1a, b/187055290)
  • ImeAction enum, satır içi bir sınıfla değiştirildi. (I18be5, b/187055290)
  • AnnotatedString.withAnnotation işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak adlandırılıyor. (I0cd0a)
    • TextUnitType içeren TextUnit kurucusu artık ExperimentalComposeApi yerine ExperimentalTextApi oldu.
  • PaddingValues artık @Immutable yerine @Stable (I88c50)

Hata Düzeltmeleri

  • Boş olmayan metinlerde boş alana uzun basıldığında yaşanan kilitlenmeler düzeltildi. (I33ab5, b/187437299)
  • Tümünü Seçtikten Sonra Araç Çubuğunu Göster (I495d9, b/185919613)
  • Kaydırılabilir kapsayıcıların, çocuklarını enine eksende kırpması sorunu düzeltildi. Kart öğeleri içeren bir LazyRow'unuz varsa bu sorun kolayca yeniden üretilebilir. Artık gölge kırpılmayacaktır. (Icb635, b/186318448)
  • Modifier.combinedClickable kullanılırken dalgaların / diğer gösterimlerin bazen uzun bir tıklamada takılı kalmasına neden olan sorun düzeltildi (I2298c, b/186223077)
  • Artık detectDragGesures, detectVerticalGestures ve detectHorizontalGestures, konum değişikliğini otomatik olarak tüketiyor. onDrag geri çağrılarında change.consumePositionChange çağrısına gerek yok (I42fc4, b/185096350, b/187320697)
  • Modifier.onGloballyPositioned(), tüm değiştiricilerin uygulanmasından sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirecek şekilde değiştirildi. Bu, artık değiştiricilerin sıralamasının hangi koordinatların raporlanacağını etkilediği anlamına gelir. (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ü bu taahhütleri içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • LazyColumn/Row, artık daha önce görünür olan 2 öğeyi, kaydırıldığında bile etkin durumda tutar (yok edilmez). Bu sayede bileşen, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde etkin alt kompozisyonları yeniden kullanabilir. (Ie5555)
  • paintBackground öğesini kaldırın. (I38660)
  • DrawScope'u kullanarak seçim arka planı çizin. (I73c61, b/186674472)
  • Ağırlıklı alt öğeleri düzenlerken spacedBy düzenlemelerini kullanan satır/sütun öğesini etkileyen beta06 gerileme 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Gezinme Hareketiyle İlgili Ç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)
  • Dizine eklenen öğelerin bulunduğu bir listeyi belirli bir dizin içeren öğeye kaydırmaya yönelik SemanticsActions.ScrollToIndex ve anahtarlanmış öğelerin bulunduğu bir listedeki öğenin diznini almaya yönelik SemanticsProperties.IndexForKey işlevleri eklendi. Her iki işlem de LazyList tarafından uygulanır.
    • Bir listeyi belirli bir dizinle kaydıran SemanticsNodeInteraction.performScrollToIndex ve bir listeyi belirli bir anahtara sahip öğeye kaydıran SemanticsNodeInteraction.performScrollToKey işlevleri eklendi. (I4fe63, b/178483889, b/161584524)
  • AnnotatedString kaydetme desteği TextFieldValue.Saver'a eklendi. AnnotatedString.Builder'a addTtsAnnotation ve withAnnotation yardımcı işlevleri eklendi (I8cbdc, b/178446304)
  • PaddingValues(horizontal, vertical) (I05571, b/181336792) için varsayılan 0.dp parametre değerleri eklendi

Hata Düzeltmeleri

  • weight(fill = false) içeren satır ve sütun alt öğeleri artık ana eksenin kullanılabilir alanının tamamını doldurmuyor. (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ü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma işlemleri ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0)
  • ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumludur (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ü bu taahhütleri içerir.

API Değişiklikleri

  • SoftwareKeyboardController'daki hideSoftwareKeyboard ve showSoftwareKeyboard işlevlerini sırasıyla hide() ve show() olarak yeniden adlandırın.
    • LocalSoftwareKeyboardController için CompositionLocal arayüzünün tamamını sağlayarak ayarlanmasını sağlayın (özellikle testlerde kullanışlıdır) (I579a6)
  • TextOverflow.Visible tanıtılır. (Ic8f89)
  • RowScope, ColumnScope, BoxScope, BoxWithConstraintsScope'in 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ına neden olan sorun düzeltildi (Ie4d13, b/183877420)
  • Bu değişiklikten önce, yerel birleştirilebilir işlevler parametrelerine göre atlanabilirdi. Bu değişiklikten sonra hiçbir yerel birleştirilebilir işlev atlanmayacaktır. Bu değişiklik, yerel işlevlerin üst öğeden parametre yakalamasının yaygın ve beklenen bir durum olması ve bu parametrelerin atlanması yaygın bir hata kaynağı olduğu için yapılır.

    Özetlemek gerekirse aşağıdaki ö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 birleştirilebilir 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ü bu taahhütleri içerir.

API Değişiklikleri

  • DefaultMonotonicFrameClock desteği sonlandırıldı. MonotonicFrameClock olmadan withFrameNanos veya Recomposer.runRecomposeAndApplyChanges çağrısı yaptığınızda artık IllegalStateException hatası alırsınız. (I4eb0d)

Hata Düzeltmeleri

  • FlingBehavior.performFling() artık hız 0 olduğunda bile ç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ü bu taahhütleri 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 yerini alacak yeni bir LocalSoftwareKeyboardController kompozisyon yerel API'si eklendi. (I5951e, b/168778053)
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni bir LocalSoftwareKeyboardController kompozisyon yerel API'si eklendi. (I84472, b/168778053)

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılma (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ü bu taahhütleri içerir.

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

API Değişiklikleri

  • onStart geri çağırma işlevi detectDragGestures'e (I67269, b/179995594) eklendi
  • Boyutlandırmayı doğal boyutlara göre ayarlama değiştiricileri artık deneysel değildir. (I15744)
  • dp iddiaları kaldırıldı (I798d2)
  • SoftwareKeyboardController geri çağırma işlevi, kısa süre içinde yeni bir API ile değiştirilmek üzere tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
  • MeasureBlocks, eğlenceli bir arayüz haline gelen MeasurePolicy olarak yeniden adlandırıldı. Layout API'leri, MeasurePolicy'yi kullanacak şekilde güncellendi / basitleştirildi. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi
    • Etkileşim etkinliklerini yayınlamaktan / toplamaktan arayüzler sorumludur.
    • interactionState = remember { InteractionState() } değerini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } değerini kullanın.
    • Bunun yerine: Interaction.Pressed in interactionState InteractionSource.collectIsPressedAsState() gibi InteractionSource'daki uzantı işlevlerini kullanmanız gerekir.
    • Karmaşık kullanım alanları için etkileşim akışını gözlemlemek üzere InteractionSource.interactions parametresini kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerini ve örneklerini inceleyin.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Desteği sonlandırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için mülk yerine işlev kullanın (I580ed, b/169874631, b/175142755)
  • CoreTextField gibi düşük düzeyli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
  • Yerleştirilebilir öğe artık alt düzenin gerçekte ölçüldüğü boyutu temsil eden measuredSize özelliğini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
  • Erişilebilirlik amacıyla sekme veya radyo düğmesi koleksiyonunu işaretlemeye olanak tanıyan selectionGroup değiştirici ekleyin (Ie5c29)
  • LazyListState.animateScrollToItem ekleme

    Bu yöntem, listedeki belirli bir öğeye sorunsuz bir şekilde kaydırılı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, smoothRotationBy işlevi eklendi. (Ifc32b, b/175294473)

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

    Bu değişiklik, varsayılan fabrika sağlanmayan, boş olmayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, boş olmayan bir tür için null referansı sağlıyordu.

    Boş bırakılabilir türler için varsayılan fabrika olarak { null } değerini sağlayabilirsiniz.

    Mantıklı bir varsayılan değer sağlanamazsa yerel değişkenleri, null olmayan türlerle kullanmanızı önermeyiz. Makul bir varsayılan değer yoksa defaultFactory lambda işlevi bir istisna atmalıdır. Ancak istisna atma, yerel kullanıcıların, tür sistemi tarafından zorunlu kılınmadığı sürece sağlanmasına dair gizli 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()'dan kaldırıldı. IndicationInstance yalnızca görsel efektleri çizmekten sorumlu olmalı, InteractionState değişikliklerine yanıt olarak animasyon başlatma / durum yazma işlemlerinden sorumlu olmamalıdır. Bu animasyonlar ve durum yazma işlemleri rememberUpdatedIndication() içinde gerçekleşmelidir. Modifier.indication içindeki indication parametresi de zorunlu parametre olacak şekilde değiştirildi. (Ic1764, b/152525426)

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

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

  • Modifier.verticalScroll()/horizontalScroll() işlevindeki kaydırma konumu artık tam sayılarla temsil ediliyor (I81298)

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

  • FlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış azalma değerleri yerine askıya alma animasyonunun özelleştirilmesine olanak tanır. (I02b86, b/175294473)

  • Beden düzenleyiciler yeniden adlandırıldı. 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(...) } politikasını 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)

  • Oryantasyon, temel pakete taşındı. VelocityTracker, ui.gesture alanından ui.input.pointer alanına 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 askıya alma işlevleridir. Bunları çağıracak bileşiğin kapsamını almak için rememberCoroutineScope() işlevini kullanın (I16f60, b/175294473)

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

    • Composition kurucusu artık anahtar parametresi kabul etmiyor ve desteği sonlandırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey bir özelliğe dönüştürülmüştür.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
    • ComposableLambdaN, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
    • snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'ın birleştirme yöntemi artık deneysel değil
    • Üst düzey @TestOnly clearRoots işlevi kaldırıldı. Artık gerekli değil.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
    • Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
    • isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
    • Çeşitli üst düzey API'ler taşındı ve farklı dosyalarda yeniden düzenlendi. Kotlin'in dosya sınıfı semantikleri nedeniyle bu durum ikili uyumluluğu bozar ancak kaynak uyumluluğunu bozmaz. Bu nedenle çoğu kullanıcı için sorun oluşturmaz.
    • (I99b7d, b/177245490)
  • Modifier.scrollable yeniden çalışıldı. 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 değerini kabul ediyor. Öncekiyle aynı davranışı elde etmek için rememberDraggableState { delta -> } aracılığıyla durum oluşturabilirsiniz (Ica70f, b/175294473)

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

  • Desteği sonlandı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 yerel 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Modifier.pointerInput artık, yeni bağımlılar için işaretçi girişi algılama coroutine'inin ne zaman yeniden başlatılacağını belirtmek üzere anahtarları hatırlamayı gerektiriyor. (I849cd)
  • Test güncellemesi: hasText(), metin alanında hem girişi hem de etiket/ipucu/yer tutucu metinlerini kontrol eder (Iab803)
  • PaddingValues.Absolute eklendi ve PaddingValues kabul eden API'lerde kullanılabilir. (Ia5f30)
  • onImeActionPerformed işlevinin desteği sonlandırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
  • Adlandırma kurallarının ImageBitmap ve ImageVector ile daha uyumlu olması için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
  • Alt dize artık bağımsız değişken olarak kullanılarak daha iyi alt dize testi API'leri (Icbe78)
  • Sonsuz animasyonlarda uygulanacak bir InfiniteAnimationPolicy coroutine bağlam öğesi kullanıma sunuldu. ComposeTestRule ile test çalıştırırken hariç olmak üzere varsayılan olarak hiçbir 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ündeki androidx.activity.compose.setContent yöntemine taşındı. (Icf416)
  • Yapıyı bölme ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
  • LazyColumn/LazyRow için özel anahtar desteği eklendi. Bu sayede öğelerin yeniden siparişini daha akıllıca yönetebiliriz. Bu nedenle, {} bloklarında hatırladığınız durumu, öğeleri yeniden sıraladığınızda veya öğeyi ortadan kaldırdığınızda öğeyle birlikte taşırsınız.

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • Indication#createInstance, @Composable olarak değiştirildi ve LocalIndication, () -> Indication yerine 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 kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)

  • Performans nedeniyle ScrollAxisRange semantikleri artık doğrudan kayan nokta değerleri yerine kayan nokta döndüren lambdaları alır. (If4a35, b/178657186)

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

  • Modifier.clickable artık çift ve uzun tıklama desteğine sahip değildir. Bu işlevi elde etmek için Modifier.combinedClickable öğesini kullanın. (Iafad1)

  • toIntPx(), roundToPx olarak yeniden adlandırıldı. (I9b7e4, b/173502290)

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

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

  • Ambiyanslar, Ambiyans -> KompozisyonYerel yeniden adlandırma ile eşleşecek şekilde yeniden adlandırıldı. Ambients eskiden AmbientFoo olarak adlandırılıyordu. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)

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

  • Daha önce state { 0 } bileşenini kaldırıp remember { mutableStateOf(0) } gibi kullanımları teşvik ettiğimiz gibi, savedInstanceState { 0 } bileşenini de kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmalısınız. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir koruyucu nesne iletiyorsanız artık stateSaver parametresini içeren yeni bir rememberSaveable aşırı yüklemesini kullanmanız gerekir. Kullanım şu şekilde görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)

  • Erişilebilirlik için şifre semantikası eklendi (I231ce)

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

  • Animasyonda oynatma süresi artık nanosaniyelerle sınırlı değil (If776a)

  • @ComposableContract desteği sonlandırıldı ve bunun yerine daha spesifik üç ek açıklama eklendi.

    @ComposableContract(restartable = false), @NonRestartableComposable oldu @ComposableContract(readonly = true), @ReadOnlyComposable oldu @ComposableContract(preventCapture = true), @DisallowComposableCalls oldu @ComposableContract(tracked = true) kaldırıldı. (I60a9d)

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

  • Yeniden derleyiciler artık kapatılabilir. Kapalı yeniden derleyiciler, derleme alt coroutine'leri tamamlanana kadar yeniden derlemeye devam eder. Recomposer.shutDown, kapat ile kontrast oluşturmak için iptal olarak yeniden adlandırıldı. (Ib6d76)

  • LazyVerticalGrid ile ilgili API'ler deneysel olarak işaretlenmiştir (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ı. İç yöntem RestorableStateProvider, SaveableStateProvider olarak yeniden adlandırıldı. Genel tür kaldırıldı. Bu nedenle, anahtar olarak herhangi bir değeri iletebilirsiniz. Deneysel ek açıklama artık gerekli değildir. (I0902e, b/174598702)

  • Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate adlı sınıftan androidx.compose.runtime.saveable adlı sınıfa taşındı (I77fe6)

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

  • Kullanıcı arayüzü paketindeki uzun süredir kullanımdan kaldırılmış birçok API silindi. (I2f2dc)

  • compose:runtime-dispatch yapısını kullanmayı bırakın. MonotonicFrameClock artık compose:runtime, AndroidUiDispatcher ise compose:ui altında bulunabilir. (Ib5c36)

  • RounderCornerShape, CutCornerShape ve CornerBasedShape'taki parametreler, şeklin rtl yönünde otomatik olarak yansıtılmasını desteklemek için sol/sağ yerine başlangıç/bitiş olarak yeniden adlandırıldı. AbsoluteRounderCornerShape ve AbsoluteCutCornerShape, otomatik yansıtmanın istenmediği durumlar için kullanıma sunulmuştur. (I61040, b/152756983)

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

  • Compose derleyici eklentisinin hedeflediği API, somut sınıf yerine arayüz kullanacak şekilde yeniden yapılandırıldı. Arayüzde artık tür parametresi de kullanılmamaktadır.

    Bu, kaynak kod uyumluluğunu etkilemeyecek ancak ikili programda uyumsuzluk oluşturan dahili bir 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) değerini de kullanabilirsiniz.

  • AnimatedValue/Float için destek sonlandırıldı. Bunun yerine lütfen Animatable'ı kullanın. (I71345, b/177457083)

    • CoreText ve CoreTextField, herkese açık API'den kaldırıldı
    • Desteği sonlandırılan SelectionContainer aşırı yüklemesi kaldırıldı (I99c19)
  • Desteği sonlandırılan askıya alma dışındaki kaydırma işlevleri kaldırıldı: Son sürümdeki değişikliklere devam ederek askıya alma dışındaki kaydırma işlevleri artık tamamen kaldırıldı. Lütfen aynı ada sahip askıya alma işlevlerine dönüştürün. rememberCoroutineScope() aracılığıyla bir eş yordam kapsamı elde edilebilir. (I3d39c, b/178169563)

  • androidx.compose.foundation.layout.ConstraintLayout, androidx.constraintlayout.compose.ConstraintLayout için 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, detectTapGestures işleviyle birlikte Modifier.clickable veya Modifier.pointerInput kullanın. (I6baf9, b/175294473)

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

  • Recomposer.runningRecomposers artık işlemdeki devam eden derleme durumunu gözlemlemek için salt okunur RecomposerInfo'dan oluşan bir global StateFlow sunuyor. Artık desteği sonlandırılmış olan 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Askıya almayan scrollBy işlevinin desteği sonlandırılacak, askıya almayan scrollTo işlevi kaldırılacak

    Artık kaydırma işlemini kontrol etmek ve kaydırma işleminin tamamlanmasını beklemek için askıya alma işlevlerini kullanmanızı öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz ve/veya desteğini sonlandırıyoruz. (Ie9ced)

  • smoothScrollBy işlevinin askıya alınmayan sürümü kullanımdan kaldı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 alınmayan sürümlerini kullanımdan kaldırıyoruz. (I12880)

  • Resim ve simge için 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 ve benzeri süslemeler eklemenize ve bu alanın isabet hedef alanını artırmanıza olanak tanır. (I16996)

  • canDrag parametresi, Modifier.draggable öğesinden kaldırıldı (Ic4bec, b/175294473)

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

  • data class, aşağıdaki sınıflardan kaldırıldı:

    • InlineTextContent
    • LocaleList
    • (I605c7)
  • tıklanabilir, açma/kapatma düğmeli ve seçilebilir öğeler artık kompozisyon dışında oluşturulabilir (I0a130, b/172938345, b/175294473)

  • ScrollableColumn/Row desteği sonlandırıldı. ScrollableColumn, yalnızca görünür öğeleri oluşturabildiği/ölçtüğü/çizdiği için büyük bir kaydırılabilir içeriğiniz varsa LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir yönteme başvurmasını önlemek için ScrollableColumn ve ScrollableRow için desteği sonlandırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımı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ığında bunları manuel olarak içe aktarmanız gerekir. Diziler için yeni uzantı aşırı yüklemeleri: items(items: Array) ve itemsIndexed(Array) (I803fc, b/175562574)

  • Desteği sonlandırılan AbsoluteArrangement kaldırıldı. (Iffa96, b/177641870)

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

Hata Düzeltmeleri

  • onCommit, onDispose ve onActive için desteği sonlandırıldı. Bunun yerine SideEffect ve DisposableEffect API'leri kullanılmalıdır (If760e)
  • WithConstraints, BoxWithConstraints olarak yeniden tasarlandı ve foundation.layout alanına taşındı. (I9420b, b/173387208)
  • Yazı tipi/yazı tipi ailesi/yazı karakteri için fabrika işlevlerinde yapılan değişiklikler

    • Büyük harfle başlayan fabrika işlevleri eklendi
    • Baş harfi küçük olan önceki fabrika işlevleri kullanımdan kaldırıldı
    • Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürür
    • Alt sınıfların kurucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulmalarını sağladı.
    • Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı
    • (I42aa7)
  • ComposeTestRule'u genişleten ve ComposeTestRule'dan kaldırılan setContent'yi tanımlayan ComposeContentTestRule tanıtıldı. ComposeTestRule döndüren ve sizin için bir Etkinlik başlatmayan bir createEmptyComposeRule() fabrika yöntemi eklendi. Testiniz sırasında etkinliğinizi başlatmak istediğinizde (ör.ActivityScenario.launch (I9d782, b/174472899) kullanarak) bunu kullanın.

  • animateAsState artık animateFooAsState olarak değişti. Foo, animasyon uygulanan değişkenin türüdür. Ör. Float, Dp, Offset vb. (Ie7e25)

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

  • TextFieldValue, AnnotatedString değerini kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve çok stilli metin düzenleme henüz uygulanmamıştır.

    • EditingBuffer yapıcı parametrelerinden initial kaldırıldı. (I326d5)
  • invalidate ve compositionReference() işlevlerinin desteği sonlandırıldı. Bu işlevlerin yerine sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri kullanılmalıdır. (I583a8)

  • AnnotatedString, kotlin.CharSequence'ten türetilecek şekilde değiştirildi. Bu nedenle length ve subSequence artık örnek işlevleridir ve uzantı işlevleri kaldırılmıştır. (Iaf429)

  • Süre ve Uptime, Uzun milisaniye ile değiştirilecek. 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 aldı ve CompositionLifecycleObserver'ın desteği sonlandırıldı.

    RememberObserver, değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemlerle CompositionLifecycleObserver'in yerini alır. Yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bu, önerilen uygulamadır ve olmaya devam edecektir. Ancak bir referans bir bileşimde birden fazla kez hatırlandıysa onEnter yalnızca bir kez çağrılırken her referans için onRemembered çağrılır. Nesne WithConstraints ve Scaffold gibi alt kompozisyonlarda kullanıldıysa onEnter birden çok kez çağrıldı. Bu da tek onEnter çağrı garantisini güvenilir olmaktan çıkardı ve RememberObserver için kaldırıldı.

    RememberObserver, RememberObserver örneği remember'ye iletilen geri çağırma işlevinden döndürülürse ancak derleme durumunda hatırlanmadıysa ve bu nedenle hiçbir zaman onRemembered çağrılmamışsa çağrılan onAbandoned'yi ekler. Bu durum, bir istisna, derlemeyi tamamlanmadan sonlandırırsa veya derleme, derleme oluşturulduğu durum artık geçerli olmadığı veya başka bir şekilde artık gerekli olmadığı için atlanırsa ortaya çıkabilir. 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ılırsa onAbandoned çağrılmayacağından onAbandoned yoksayılabilir. (I02c36)

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

    • TransformedText artık bir veri sınıfı değildir (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)

  • Küresel 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 (Ie1bcc) yerine ImeAction.Default kullanın
  • FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiştir. (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. Herhangi bir genel API'de kullanılmadıkları için PointerInputEvent ve PointerInputEventData'yı dahili hale getirdik. (Ifff97, b/175142755)

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

  • displaySize değerini kaldırın. Genellikle onRoot() boyutunu veya en azından 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ü bu taahhütleri içerir.

API Değişiklikleri

  • ImeOptions ve KeyboardOptions artık veri sınıfı değildir (I3c898, b/168684531)
  • VisualTransformation API Değişiklikleri
    • OffsetMap, OffsetMapping olarak yeniden adlandırıldı
    • OffsetMapping.identityOffsetMap yeniden OffsetMapping.Identity olarak adlandırıldı
    • PasswordTransformation artık veri sınıfı değildir
    • OffsetMapping kendi dosyasına taşındı
    • (I0bdf3)
  • EditOperations API Değişiklikleri
    • EditOperation, EditCommand olarak yeniden adlandırıldı
    • EditOperation somut uygulamaları için komut son eki eklendi
    • EditCommand'lar artık veri sınıfları değildir
    • EditOperation.process işlevi, applyTo olarak yeniden adlandırıldı
    • InputEventListener, InputEventCallback olarak yeniden adlandırıldı
    • (I0a366)
  • Hız, bileşen parçaları ve matematiksel işlemler içerecek şekilde değiştirildi. (Ib0447)
  • Benzer deneysel API ek açıklamalarıyla tutarlı olması için @ExperimentalTesting, @ExperimentalTestApi olarak yeniden adlandırıldı (Ia4502, b/171464963)
  • LazyColumn/LazyRow için deneysel stickyHeader yöntemi eklendi (I0a81d)
  • Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5)
  • TestUiDispatcher kullanımdan kaldırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
  • Foundation Strings.kt'ye açma/kapatma düğmesi ekleme (I4a5b7, b/172366489)
  • nativeClass, ui modülüne taşındı ve dahili hale getirildi. equals uygulamalarında nativeClass kullanımı, bunun yerine "is MyClass" olarak güncellendi. (I4f734)
  • FlowRow ve FlowColumn desteği sonlandırıldı. Bunun yerine lütfen özel bir düzen kullanın. (I09027)
  • Modifier.focus() ve Modifier.focusRequester() işlevlerinin desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
  • SelectionManager'da seçilebilir öğe güncellemelerini bildirmek için SelectionRegistrar.notifySelectableChange eklendi. (I6ff30, b/173215242)
  • fun Dp.isFinite(), val Dp.isFinite olarak değiştirildi (I50e00)
  • Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
  • Belirtilmemiş sabit içeren 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ı münhasırlığı sağlayan yeni coroutine tabanlı API Animatable. Çok boyutlu bozulma animasyonunu desteklemek için yeni DecayAnimationSpec (I820f2, b/168014930)
  • Devre dışı bırakılan ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
  • animate() artık animateAsState() ile değiştirildi. Bu değişiklik, T yerine State<T> döndürür. Geçersiz kılma kapsamı, State değerinin okunduğu yere daraltılabileceğinden bu, daha iyi performans sağlar. (Ib179e)
  • Semantics role API'yi ekleyin ve tıklanabilir, seçilebilir ve değiştirilebilir SemanticsModifier'a parametre olarak Role ekleyin. Modifier.progressSemantics özelliği, Kaydırma Çubuğu'nun da kullanabilmesi için değiştirildi. (I216cd)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent (I87c57, b/173086397) aracılığıyla erişilebilir.

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ü bu taahhütleri içerir.

API Değişiklikleri

  • Kaydırılabilir arayüz ekleme

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

    Bu işlem, smoothScrollBy işlevini Scrollable'daki bir uzantı işlevine taşıyarak bu işlevden yararlanır. (I2153b)

  • LazyVerticalGrid eklendi. (I17267, b/162213211)

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed işlevleri kullanımdan kaldırılıyor. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)

  • İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope adlı API'nin adı AwaitPointerEventScope olarak, handlePointerInput() adlı API'nin adı da awaitPointerEventScope() olarak değiştirildi. (Idf0a1, b/175142755)

  • Şu anda görünür öğelerin boyut ve ofsetlerinin listesini gösteren LazyListState.layoutInfo eklendi (If8678, b/170472532)

  • ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)

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

  • LazyColumn/Row için reverseLayout parametresini ekleyin. true olduğunda öğeler aşağıdan yukarıya doğru oluşturulur ve LazyListState.firstVisibleItemIndex == 0 olduğunda ilk öğe en altta yer alır. (I552ae, b/166589935)

  • LazyColumn için verticalArrangement parametresi eklendi. LazyRow için horizontalArrangement parametresi eklendi. Düzenleme, minimum boyutun tamamını dolduracak kadar öğemiz olmadığında öğeler arasına boşluk eklememize ve öğ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 işlevi kullanır. (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 lambdalar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
  • SlotTable, SlotReader ve SlotWriter, herkese açık API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretlenmişti. Artık bu özellikler, oluşturma modülüne dahil edildi.

    CompositionData ve CompositionGroup, kompozisyon bilgilerini ayıklamak için kullanılacak ui-tooling API'nin yerine eklendi. Bunlar herkese açıktır ancak 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 boyut bilgileri mevcut olduğunda ShaderBrush'ı, gölgelendirici örneğini yavaşça oluşturacak şekilde yeniden yapılandırdı. Bu, özel DrawModifier uygulamaları uygulamak zorunda kalmadan, bir kompozisyonun tüm çizim sınırlarını kompozisyon sırasında kaplayan degradeleri tanımlamak için kullanışlıdır.

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

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

  • Autofill API artık deneysel API'dir ve etkinleştirilmesi gerekir (I0a1ec)

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

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

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

  • AndroidOwner tarafından dahili hale getirildi (Ibcad0, b/170296980)

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

  • Applier arayüzü, ağaç oluşturmayı yukarıdan aşağıya yerine aşağıdan yukarıya doğru basitleştirmek için değiştirildi.

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

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

    Uygulayıcı, daha iyi performans gösterene bağlı olarak insertTopDown() veya insertBottomUp() kullanarak düzenlediği ağaca düğüm ekler.

    LayoutNode ve View gibi bazı ağaçların alttan yukarıya doğru oluşturulması, yukarıdan aşağıya doğru oluşturulmasından çok daha verimlidir. Bu değişiklikten önce, aşağıdan yukarıya doğru uygulamak için bir dizi ekleme gerekliydi. Bu eklemelerin, performans için aşağıdan yukarıya doğru oluşturma işlemi gerektiren her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte, Applier, ağacı aşağıdan yukarı doğru oluşturmak için insertBottomUp()'ü, ağacı yukarıdan aşağı doğru oluşturmak için ise insertTopDown()'yi geçersiz kılar. (Icbdc2)

  • Rastgele öğe biçimlerinden (PNG'ler gibi) veya VectorDrawable'lardan Painter nesnelerini opak olarak yüklemeyi işlemek için painterResource API eklendi. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Bu yöntemi çağırarak resim kompozisyonlarında veya ressam değiştiricilerinde kullanılacak bir Painter nesnesi elde edebilirler. (I2c703, b/173818471)

  • AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. annotatedStringBuilder işlevi kullanımdan kaldırıldı. (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ü bu taahhütleri içerir.

API Değişiklikleri

  • maxLines parametresi, CoreTextField öğesinden kaldırıldı. Metin alanının yüksekliğini satır sayısına göre kısıtlamak istiyorsanız bunun yerine BasicTextField değerini kullanın. (Iec002)
  • await*TouchSlop() yöntemleri, işaretçiyi aşağı doğru algılamayacak şekilde değiştirildi ve *OrCancellation olarak yeniden adlandırıldı. Ayrıca orientationLock parametresinin gerekliliği de kaldırıldı. (Ie96e1)
  • Compose yönergeleriyle tutarlılığı kontrol etmek için birleştirilebilir lambda parametre adlandırma ve konumu için lint denetimi eklendi. Ayrıca, son lambda adları olarak children kullanan bazı API'ler, lint kontrolüne ve yönlendirmeye göre content olarak taşındı. (Iec48e)
  • foundation:foundation-text API'si foundation:foundation'e taşındı. Paket yapısı aynı kalmıştır (Id3eb2)
  • Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan yeni çoklu dokunma hareket algılayıcı. (Ic459d)
  • Yönlendirme kilitleme dahil olmak üzere yeni sürükleme hareketi algılayıcısı, işaretçi giriş API'sini askıya alır. (Icef25)
  • VectorAsset, ImageVector olarak yeniden adlandırıldı. API konseyi yönergelerine göre VectorAsset, ImageVector'ın iç sınıfı olması için taşındı ve Builder olarak yeniden adlandırıldı. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder için typealias eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • Temel anlambilim özellikleri kullanıcı arayüzüne taşındı (I6f05c)
  • İş parçacığı tabanlı kaydırma API'leri ekleyin:

    Ekran kaydırma kontrolü için LazyListState.snapToItem ve LazyListState.smoothScrollBy'nin yanı sıra daha düşük düzey API'ler ekler. Bu API'ler, kaydırma işlemini kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, geri dönmeden önce kaydırma işleminin tamamlanmasını bekler. (Ie5642)

  • BasicTextField, TextField ve OutlinedTextField'e singeLine parametresi eklendi. Metin alanını yatay olarak kaydırılabilir tek bir satır haline getirmek için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)

  • Yeni askıya alınmış işaretçi girişi kullanılarak dokunma, iki kez 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ıran birkaç yardımcı program da eklendi. (I00807)

  • Modifier.focusable'ın temele eklenmesi gerekiyor. Doğru anlam ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için bunu 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. Grup kaldırıldı. Bunun yerine Kutu'yu 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ılan API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemler içeren DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
  • Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca API konseyi geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
  • <T>, SubcomposeLayout beyanından kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)
  • PointerInputData'nın çalışma süresi ve konum alanlarını boş bırakılamayan hale getirdik. (Id468a)
  • MaterialTheme artık seçim tutamaçlarının ve seçim arka planının doğru renklerini ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
  • Kutu'nun alignment parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
  • offsetPx değiştiricileri offset olarak yeniden adlandırıldı. Artık durum yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
  • Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırma işlevi sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
  • TextInputService#onStateUpdated işlevine resetInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
  • TextFieldValue API güncellendi
    • TextFieldValue.composition özelliği salt okunur hale getirildi
    • geçersiz seçim aralığı için kaldırıldı istisnası atıldı (I4a675, b/172239032)
  • Son eklerinde Ambient bulunan Ambient'ler kullanımdan kaldırıldı ve diğer Ambient'ler ile Compose API yönergelerine uygun olarak Ambient ön ekiyle yeni mülklerle değiştirildi. (I33440)
  • Android yazı tipi sarmalayıcısı eklendi. typeface işlevi (ör. typeface(Typeface.DEFAULT)) aracılığıyla Android yazı tipi yükleyebilirsiniz. Ayrıca typefaceFromFontFamily(), typeface() olarak yeniden adlandırıldı (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 denetimi eklendi. (I3c4bc)
  • Düzenleyici fabrika işlevlerinin Düzenleyici'de uzantı olarak tanımlanıp tanımlanmadığını kontrol etmek için lint denetimi eklendi. Böylece, işlevler birbirine sorunsuz bir şekilde bağlanabilir. (I07981)
  • Anlamsal bağımsız değişken mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Testlerde zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
  • Eski ui-test modülünü ve onun stub'larını kaldırın (I3a7cb)
  • TextUnit.Inherit, diğer birimlerle tutarlı olması için TextUnit.Unspecified olarak yeniden adlandırıldı. (Ifce19)
  • Hizalama arayüzü güncellendi ve çalışır 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 ofset'leri olan 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Modifier.fillMaxSize[Width|Height]'e benzer şekilde artık LazyColumn/Row kapsamında Modifier.fillParentMaxSize[Width|Height]'te kesirleri destekliyoruz (I797e2, b/166586426)
  • KeyboardOptions.toImeOptions, herkese açık API'den kaldırıldı. (Ic2e45)
  • Temel AmbientTextStyle, ProvideTextStyle ve AmbientContentColor desteği sonlandırıldı. Bunun yerine, Material kitaplığındaki yeni sürümleri kullanın. Material olmayan uygulamalarda ise kendi tasarım sisteminize özel tema ortamları oluşturmanız ve bunları kendi bileşenlerinizde kullanmanız gerekir. (I74acc, b/172067770)
  • foundation.Text desteği sonlandırıldı ve material.Text ile değiştirildi. Bir temadan değer tüketmeyen temel, tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
  • TextField'lere maxLines eklendi (Ib2a5b)
  • TextField'leri KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
  • TextField'lerde kullanılmak üzere KeyboardOptions eklendi (I9ca32)
  • BasicTextField'e paralel olarak metin için tasarıma bağlı olmayan bir API olarak BasicText'i ekler. (I28268)
  • ExperimentalLazyDsl ek açıklaması kaldırıldı. LazyColumn/LazyRow artık @OptIn eklenmeden kullanılabilir (Idab7a, b/166584730)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'i kullanın. (I896eb)
  • Hem CoreTextField hem de BaseTextField'in (Id4cea) yerine BasicTextField eklendi
  • Desteği sonlandırılan LazyColumnItems/LazyRowItems öğelerini kaldırın (I1d8a8)
  • Doğal ölçümlere göre boyutlandırma için desteği sonlandırılan bileşenler kaldırıldı. (I18537, b/171811496)
  • relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzenleme sınırlarından metin taban çizgilerine olan mesafeleri belirtmek için kolaylık sağlamak amacıyla paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
  • matchHeightConstraintsFirst parametresi, en boy oranı düzenleyicisine eklendi. Bu parametre, genişlik eşleyenleri denemeden önce düzenleyiciyi yükseklik kısıtlamalarına göre boyutlandırmak için kullanılabilir. (Ie7c43, b/155290593)
  • Desteği sonlandırılan DpConstraints kaldırıldı. (I87884, b/171702471)

Hata Düzeltmeleri

  • Düzensiz ölçeklendirme kullanım alanlarını desteklemek amacıyla yatay ve dikey eksenler için ölçek faktörlerini birbirinden bağımsız olarak temsil etmek üzere ScaleFactor satır içi sınıfı kullanıma sunuldu.
    • ContentScale'a computeScaleFactor yöntemi eklendi
    • Kaynak sınırları, hedefi tamamen kaplayacak şekilde uzatılarak eşit olmayan ölçeklendirme yapmak için 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)
  • KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
  • KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
  • CoreTextField, @InternalTextApi olarak işaretlendi. Bunun yerine BasicTextField kullanın (Ie2469)
  • ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad)
  • ui-test-junit4 modülü kullanıma sunuldu (Ib91f8)
  • Simge API'si, sağlanan öğeyi veya boyayı ColorFilter olmadan çizecek olası bir ton rengi olarak Color.Unspecified değerini alacak şekilde güncellendi. Daha önce Color.Unspecified ile renklendirmeyi yok sayma girişimleri, saydam bir renkle renklendirme yapar ve hiçbir şeyin oluşturulmasına yol açmazdı. (I049e2, b/171624632)
  • MeasureResult, MeasureScope'tan çıkarıldı. (Ibf96d, b/171184002)
  • androidx.compose.ui altındaki birkaç düzen sembolü, androidx.compose.layout.ui altına 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 işlevi 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ü bu taahhütleri içerir.

API Değişiklikleri

  • androidx.compose.foundation.Icon, androidx.compose.material.Icon altına taşındı. Malzeme kitaplığını kullanmak istemiyorsanız Resim bileşenini / Modifier.paint() işlevini bir Painter ile 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)
  • Kutu satır içi işlev haline getirildi. (Ibce0c, b/155056091)
  • CoreTextField'e maxLines eklendi (Ibee58, b/143687793)
  • CoreTextField'e yumuşak satır sarma özelliği eklendi. (I21a4b)

Hata Düzeltmeleri

  • Kompozit API'nin, verileri kompozisyonlar arasında kalıcı hale getirmek için dahili olarak "remember" işlevini kullandığını daha iyi belirtmek amacıyla VectorPainter yerine rememberVectorPainter işlevinin desteği sonlandırıldı. (Ifda43)
  • ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'dan yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
  • CoreTextField'e (I72e6d) tek satırlı klavye seçeneği eklendi
  • Radius API'nin adı, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirtmek için dokümanlar güncellendi. (I130c7, b/168762961)
  • Birleştirilmiş değiştiricide denetleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569)
  • Klavye Büyük/Küçük Harfleri Büyük Yapma IME Seçeneği eklendi (I8ac38)
  • Rtl kolu konumunu düzeltin. (I6e1e0)
  • Kullanıma son verilen değişiklik: İşaretçi etkinliklerinde değiştirilebilmesi gereken tek değerin tüketim verileri olması nedeniyle PointerInputFilter.onPointerEvent(...) işlevindeki döndürülen değer kaldırıldı. Artık PointerInputFilter.onPointerEvent(...) işlevinden veri döndürmek yerine, iletilen PointerEvents öğesinin 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ü bu taahhütleri içerir.

API Değişiklikleri

  • CoreTextField artık imleç işlevini destekliyor (Id23aa)
  • contentColor() ve currentTextStyle() API'lerinin desteği sonlandırılır ve sırasıyla AmbientContentColor ve AmbientTextStyle ortamlarıyla değiştirilir. Diğer tüm ortamlarda olduğu gibi, ortam mülkünde .current kullanarak mevcut değere erişebilirsiniz. Bu değişiklik, tutarlılık sağlamak ve aynı işlemi gerçekleştirmek için birden fazla yöntem olmasını önlemek amacıyla yapılmıştır. Ayrıca, bazı ortam özelliklerini amaçlarını daha iyi açıklamak için aşağıdaki şekilde yeniden adlandırır:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • VurguAmbiyans -> AmbiyansVurguDüzeyleri
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)

Hata Düzeltmeleri

  • Satır içi sınıflar için gözetmen 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 değerini Color.Unspecified olarak yeniden adlandırın (I97611, b/169797763)
  • Kopyala/Yapıştır/Kes erişilebilirlik işlemleri eklendi (I6db4f)
  • TextOverflow.None özelliği kullanıma sunuldu. Taşma None olduğunda Text artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
  • Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamalarını, sonlu olmayan boyutların yanı sıra Size.Unspecified ile de kontrol edecek şekilde güncellendi. (I95a7e)
  • Sayfalama Oluşturma modülü ve sayfalama entegrasyonu eklendi (Ib85da)
  • LazyListScope'u, boş değer alabilecek şekilde değiştirme (I1765b)
  • OnPositionedModifier, OnGloballyPositionedModifier olarak yeniden adlandırıldı ve onPositioned(), onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)
  • LazyColumn/Row (Idc16d) için örnekler eklendi
  • items ve itemsIndexed yöntemlerinde emptyList değerine izin vermek için düzeltme (I06647)
  • Denetleyici bilgilerini belirtmek için DSL ekleme (Ic9a22)
  • Uzun basmayı metne taşıyın. (Iff2bc)
  • Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)
  • Erişilebilirlik için AnnotatedString'den SpannableString'e dönüştürme işlemini destekleyin. (Ief907)
  • PointerInputFilter.onPointerInput(...) kaldırıldı. Bunun yerine 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ü bu taahhütleri içerir.

API Değişiklikleri

  • Grup, Box olarak yeniden adlandırıldı. Daha önce var olan foundation.Box, compose.foundation.layout içindeki yeni Box için kullanımdan kaldırılacak. Yeni Kutu'nun davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki Kutu'dan farklıdır. (I94893, b/167680279)
  • Kutu süsleme parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine değiştiricileri kullanın (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • Yeni bir LazyListState sınıfı ekleyin. Bu sayede LazyRow ve LazyColumn bileşenlerinin kaydırma konumunu gözlemleyebilir ve kontrol edebilirsiniz. rememberLazyListState() kullanılarak örnekler oluşturulabilir ve bileşenin durum parametresine iletilebilir. Şu anda bu ilk sürümde ilk görünür öğe ve ofsetler gözlemlenebilir. (Ic7cb7, b/159307669)
  • Etkinlik yeniden oluşturulurken artık etkin liste konumu ve kaydırma ofseti kaydedilip geri yüklenir (Ie045f, b/166589058)
  • Uzun tıklama semantik işlemi ekleme (I6281b, b/156468846)
  • Paylaşılan durum için tek bir değiştiriciyi zaman içinde tutmak ve çakışan değiştiricileri önceliğe göre iptal etmek amacıyla MutatorMutex yardımcı programı eklendi (I3f975)
  • rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ve textInputServiceFactory sınıflarına @VisibleForTesting ekleyerek bunları dahili API'ye dönüştürün ve kdoc'larını gizleyin (I554eb, b/168308412)
  • Dize içeren metin girişinden inlineContent parametresi kaldırıldı. inlineContent, AnnotatedString ile çalışması gerektiği için kullanılmaz. (Ief403)
  • Desteği sonlandırılan özel Arrangement API'leri kaldırıldı. (Ic576d, b/168297922, b/168297923)
  • unbounded parametresi, wrapContentSize değiştiricilerine eklendi. Bu parametre, düzen öğesinin sonsuz maksimum kısıtlamalarla ölçülmesini sağlar. (I77951, b/158559319)
  • Düzenleme kapsamlarının içeriğinin statik olarak içe aktarılmasını (ör. RowScope'taki alignWithSiblings) engelledik. 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'daki x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresi kullanacak şekilde ölçek ve dönme dönüşümü API'leri güncellendi
    • Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
    • Yarıçap dokümanları, elips şeklindeki şekillere ek olarak oval şeklindeki şekilleri de içerecek şekilde güncellendi.
    • Satır içi Radius sınıfının herkese açık kurucusunun doğrudan çağrılmaması gerektiğini, bunun yerine Radius nesnelerinin işlev kurucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi
    • Sağ üst, sağ alt, alt orta vb. noktaları sorgulamak için RoundRect API'leri kaldırıldı.
    • Rect.shift, Rect.translate için 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, işlev yerine mülk olarak değiştirildi
    • RoundRect yapıcısı, x/y yarıçapı değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi
    • Orijininin 0,0 olduğu bir dikdörtgen olduğunu varsayılan Boyut API'leri kaldırıldı
    • Radius'a bir destructing API eklendi
    • Çeşitli RoundRect uzantı işlevleri, mülk olarak taşındı
    • (I8f5c7, b/168762961)
  • Her kaydırma sırasında gereksiz yeniden oluşturma işlemleri yapılmadığı için LazyColumnFor/LazyRowFor kaydırma için performans optimizasyonları (I64f65, b/168293643, b/167972292, b/165028371)
  • Ekranı kaydırdıktan ve ardından öğeleri değiştirdikten sonra LazyColumnFor/LazyRowFor'da yaşanan kilitlenme 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ş boşluklar gösterilmeyecek (I220ab, b/161480164, b/167855468)
  • ScrollableContainer ve LazyColumnFor gibi aynı yönde kaydırılabilir kapsayıcıların iç içe yerleştirilmesine artık izin verilmez. Hiçbir zaman desteklenmedi ve fling'i ve LazyColumnFor öğelerini oluşturmanın tüm tembelliğini 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 DrawScope API'leri, kapsamlı dönüşüm yöntemleriyle güncellendi
    • clipPath dokümanları, yuvarlatılmış dikdörtgen yerine yol ifadesini içerecek şekilde güncellendi
    • clipPath'teki sağ parametre için dokümanda sabit aralık
    • DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
    • İçe ekleme yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
    • 4 sınırın tamamına aynı içe ekleme değerini sağlayan içe ekleme aşırı yüklemesi eklendi
    • İç içe ekleme yönteminin 4 tarafın tamamına uygulanacağını belirten dokümanlar kaldırıldı
    • Rect sınıfı için güncellenmiş dokümanlar
    • Rect parametreleriyle ilgili yorumlar, kdoc stiliyle eşleşecek ş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 desteği sonlandırıldı
    • (If086a, b/167737376)
  • AccessibilityScrollState özelliğini semantik özelliklere ekleyin. (Ifeda9)
  • Nesne oluşturmayı önlemek için TextRange'i satır içi yapın. (Id034b)
  • ParagraphConstraints kaldırılır. Genişlik artık doğrudan paragrafa iletiliyor. (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ü bu taahhütleri içerir.

API Değişiklikleri

  • InnerPadding, PaddingValues olarak yeniden adlandırıldı. (I195f1, b/167389171)
  • Yerçekimi kullanımları, düzen API'lerinde tutarlı bir şekilde align veya alignment olarak yeniden adlandırıldı. (I2421a, b/164077038)
  • Grup'a, tüm Grup alt öğeleri için varsayılan hizalamayı belirtmenize olanak tanıyan bir hizalama parametresi eklendi. (Ie80ca, b/164085265)

Hata Düzeltmeleri

  • DpConstraints ve bu API'yi 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ı. preferredWidthIn, heightIn, preferredHeightIn için de benzer şekilde. (I0e5e1, b/167389544)
  • Mevcut genel yöntemler kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer genel yöntemler eklendi. (Ieae36)
  • GestureScope'taki boyut ve konum hesaplamaları düzeltildi. Bu hesaplamalar, diğerlerinin yanı sıra geçersiz kaydırma hareketlerinin oluşturulmasına neden oluyordu (Iaf358, b/166589947)
  • createAndroidComposeRule ve AndroidInputDispatcher, androidx.ui.test.android kuruluş biriminden androidx.ui.test kuruluş birimine 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ü bu taahhütleri içerir.

Hata Düzeltmeleri

  • TestUiDispatcher deneysel olarak işaretlenmiştir (Iae99d, b/161247083)
  • Bu saatten bir kare bekleyip beklemediğini görmek için ManualFrameClock.hasAwaiters eklendi; ManualFrameClock gerektiren testleri çalıştırırken runBlocking yerine runWithManualClock eklendi; testlerinizde ana kullanıcı arayüzü dağıtıcısına kolay erişim sağlayan TestUiDispatcher.Main eklendi.

    Örnek:

    @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ü bu taahhütleri 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ı. 0.1.0-dev17 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Düzen alt öğelerinin sabit bir aralıkla yerleştirilmesini sağlamak için Satır ve Sütun için aralıklı düzenleme eklendi. Ayrıca, düzen alt öğelerinin yan yana yerleştirilmesini ve bir Hizalamaya göre Satır/sütunda hizalanmasını sağlamak için hizalanmış Düzenleme de eklendi. Önceki Arrangement.Vertical#arrange ve Arrangement.Horizontal#arrange yöntemleri için destek sonlandırıldı ve özel aranjmanlar yazmak gelecekte desteklenmeyecek. (I6733d, b/161985975)
  • Ofset, satır içi sınıf haline geldi (Iaec70)
  • TextField'den onFocusChanged geri çağırma işlevleri 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. Kenarlık veri sınıfı, BorderStroke (I4257d, b/158160576) ile değiştirildi
  • VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Modifier.drawBackground kaldırıldı. Modifier.background (I73b0d, b/163019183) öğesini kullanın.
  • LazyColumnFor'un doğrudan alt öğeleri olmayan öğeler için bu tür değiştiricileri doğru şekilde eklemeyi zorlaştırdığı için desteği sonlandırılmış olarak işaretlenen fillMax* değiştiricileri LazyItemScope'tan kaldırın (Ifa78d)
  • DSL olarak LazyColumn/LazyRow uygulaması eklendi (I93cc6)
  • Constraints artık satır içi bir sınıftır (I88736)
  • fillMaxWidth, fillMaxHeight ve fillMaxSize değiştiricileri kullanılarak bir düzenin boyutunu kullanılabilir alanın bir bölümüne ayarlama özelliği eklendi. (I945bb, b/161562591)

Hata Düzeltmeleri

  • SelectionContainer'a (I4aada, b/161487952) bir değiştirici parametresi eklendi
  • SemanticsPropertyKey'e mergePolicy lambda eklendi. Bu, mergeAllDescendants semantik birleştirme işlemi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, mevcutsa üst değeri, 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ı. Sonuç olarak, PlacementScope.place() yöntemi artık sağdan sola doğru metinlerde konumu otomatik olarak yansıtmayacaktır. Bu isterseniz bunun yerine PlacementScope.placeRelative() kullanın. (I873ac, b/162916675)
  • Desteği sonlandırılan FilledTextField bileşeni kaldırıldı. Doldurulmuş 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ındaki ilerlemeyi animasyonlu olarak gösterirken varsayılan AnimationSpec olarak kullanılabilen yeni ProgressIndicatorConstants.DefaultProgressAnimationSpec eklendi (If38b5, b/161809914, b/161804677)
  • state { ... } bileşeni artık kullanımdan kaldırıldı. Bunun yerine, daha net bir şekilde remember { mutableStateOf(...) } çağrıları yapılması önerilir. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavram sayısını azaltır ve sınıf mülkü yetkilendirmesi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)
  • RRect, oluşturma adlandırma kalıplarına daha uygun olması için RoundRect olarak yeniden adlandırıldı. RRect'e benzer işlev oluşturucular oluşturuldu ve RRect işlev oluşturucuları için destek sonlandırıldı (I5d325)
  • onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine alt düzende onPositioned ve OnPositionedModifier yöntemlerini kullanmalıdır. (I4522e, b/162109766)
  • IntSize artık satır içi bir sınıftır (I2bf42)
  • Düzenlemek için boş alana uzun basın. (Ib1e5b)
  • Metne Dokunulduktan Sonra Yüzen Araç Çubuğunu Gizleme. (If4525)
  • Seçim güncellenirken yüzen araç çubuğunu gizleme. (I8444c)
  • Bulanıklaştırma Ne Zaman? seçeneğinin seçimini 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ü bu taahhütleri içerir.

API Değişiklikleri

  • LazyItemScope, yavaş listelerin itemContent parametresi için eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve öğe sonsuz kısıtlamalarla ölçüldüğü için normal Modifier.fillMaxSize() işlevi çalışmadığı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 işlevinde hem dizin hem de öğe sağlayan LazyColumnFor/LazyRowFor sürümleri. Mevcut bir öğeye ek olarak mevcut bir dizini 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 (I84f84) olarak yeniden adlandırıldı
  • En iyi uygulama nedeniyle bazı işaretler/notlar ekleyin. (I66b20)
  • foundation.shape.corner paketi, foundation.share olarak düzleştirildi (I46491, b/161887429)
  • LazyRowItems/LazyColumnItems için crossaxis gravity parametresi eklendi. LazyRowItems/LazyColumnItems artık içerik sarma davranışını desteklemektedir. (Ib39fc)
  • ZoomableState, ZoomableController olarak yeniden adlandırıldı. smoothScale için özel eğri desteği eklendi. enabled ve onZoomStarted işlevi eklendi (If8b8f)
  • Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, BaseTextField olarak yeniden adlandırıldı. Böylece, istenen en basit API'nin keşfedilmesi ve kullanılması kolaylaştırıldı (Ia6242, b/155482676)
  • Daha önce desteği sonlandırılan AdapterList kaldırıldı. Bunun yerine LazyColumnItems'i kullanın (I12b9b)
  • Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
  • Eski ConstraintLayout DSL'si kaldırıldı. ConstraintSet2, ConstraintSet olarak yeniden adlandırıldı. (If58d1, b/162450908)
  • Modifier.absoluteOffset() ve Modifier.absoluteOffsetPx() eklendi. Ofset değiştiricilerden farklı olarak mutlak ofset değiştiriciler, sağdan sola bağlamda otomatik olarak yansıtılmaz (I3aa21)
  • Row ve Column artık satır içi işlev olduğundan bunların kullanılmasıyla ilgili ek maliyet önemli ölçüde azaltıldı. (I75c10)

Hata Düzeltmeleri

  • Geniş API düzeltmelerini ele alma (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırma
    2. Tutarlı bir API yüzeyi elde etmek için Offset ve IntOffset sınıflarını hizalama
    3. Offset API ile tutarlı olması için IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın
    4. Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı
    5. DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden yapılandırmak ve alanın null olmamasına dikkat etmek için 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 enum'ları Pascal Case olarak yeniden adlandırıldı
    10. PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
    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ı, artık lateinit parametrelerini kullanmamak için güncellendi
    14. DrawScope, fillPaint ve strokePaint dahili parametreleri için artık yavaş yetkilendirme kullanmamak üzere güncellendi
    15. Daha az ek maliyet için Box kullanımını önlemek amacıyla resim derleyici güncellendi
    16. Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi
    17. PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
    18. Vektör alt bileşimi, birleştirme işlemi zaten bunları ele aldığından eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere güncellendi
    19. İşlev oluşturucuların lehine Rect yardımcı oluşturucu yöntemlerinin desteği sonlandırıldı
    20. Fırça sınıfları ve işlev kurucuları @Immutable ve @Stable API'leriyle güncellendi
    21. VertexMode enum'u PascalCase olarak güncellendi
    22. DrawScope selectPaint yöntemi, boyadaki vuruş parametrelerinin değişmiş olması durumunda koşullu olarak üzerine yazacak şekilde güncellendi
    23. Boyut, yapı bozma API'sini eklemek için güncellendi, BelirtilmemişBoyut yeniden adlandırılarak Belirtilmemiş olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
  • Yeni coroutine tabanlı saatler ile hâlâ 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'ın MonotonicFrameClock eşdeğeri artık ManualFrameClock. (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 yazma desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)

  • Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then işlevini kullanın. "Sonra", sıralama konusunda daha güçlü bir sinyal verir. Ayrıca Modifier.padding().background() + anotherModifier yazmayı yasaklar. Bu da zinciri bozar ve metnin okunmasını zorlaştırır (Iedd58, b/161529964)

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

  • RemeasurementModifier eklendi. Kullanıcıların düzeni senkronize olarak yeniden ölçmesine olanak tanır. Genel olarak, yeniden ölçme/yeniden düzen oluşturma işlemi otomatik olarak gerçekleştiği için bu yönteme hiç 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ır ve en son yönergelere uygun olarak Q öncesi güç tasarrufu durumunu yoksayar. (I0c10c)

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

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

  • TextLayoutResult almak için erişilebilirlik işlemi ekleme (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ü bu taahhütleri içerir.

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

Bağımlılıklar Güncellemesi

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

API Değişiklikleri

  • ScrollableColumn/ScrollableRow'daki yeni parametreye benzer şekilde LazyColumnItems/LazyRowItems'de artık içerik için kırpıldıktan sonra dolgu eklemenize olanak tanıyan contentPadding parametresi de vardır. Bu, yalnızca bir değiştirici parametreyle mümkün değildir. Ayrıca yalnızca ilk öğeden önce/son öğeden sonra boşluk eklemenize olanak tanır. (Ibc24e)
  • Metin alanlarında onFocusChange geri çağırma işlevi, onFocusChanged olarak yeniden adlandırıldı (Ida4a1)
  • VerticalScroller ve HoriziontalScroller kullanımdan kaldırıldı. Sütun/satır 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 için desteğin sonlandırılması ve ScrollState'in kullanılması önerilir (I400ce, b/157225838, b/149460415, b/154105299)
  • Modifier.draggable ve Modifier.scrollable API'leri yeniden tasarlandı. DragDirection, Orientation için 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 anlambilim özellikleri artık bir çağrı stili kullanıyor. Örneğin, "semantics { hidden = true }" artık şu şekilde yazılır: 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)
  • Resim kompozit öğesi için varsayılan ContentScale parametresi İçten yerine Sığdır olarak değiştirildi. Bu, düzen boyutu boy oranını korurken boyacının doğal boyutundan büyükse temel boyacının ölçeğini büyütecek bir davranış elde etmek için yapıldı. Bu davranış, birleştirilebilir öğenin boyutunu hesaplamak için yalnızca doğal boyut kullanılıyorsa varsayılan davranışı etkilemezken görüntüye sabit boyutlar sağlama beklentilerini daha iyi karşılar. (I40ae3, b/159838006)
  • Statik animasyon spesifikasyonu kavramını netleştirmek için üst düzey API'lerde AnimationBuilder yerine AnimationSpec kullanın. Tween, spring gibi AnimationSpec'ler oluşturmak için lambda koşulunu kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine, doğrudan kurucu parametrelerini alırlar. -Oluşturuculara güvenmek yerine AnimationSpec'in genel kullanım kolaylığını artırmak için yapıcıları açarak -KeyFrames ve Tween için süreyi ve gecikmeyi Int olarak değiştirin. Bu, gereksiz tür dönüştürme işlemlerini ve yöntem aşırı yüklemeyi (hem Long hem de Int'i desteklemek için) ortadan kaldırır. (Ica0b4)
  • Tıklanabilir özelliği kaldırıldı. Değiştirici.tıklanabilir (I84bdf) özelliğini kullanın
  • LazyRowItems eklendi: LazyColumnItems'in yatay kaydırmalı analogu (Ibbcf7)
  • Düşük düzeyde durum bilgisi olmayan 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 bileşenlerinin desteği de sonlandırılmıştır. Bunun yerine lütfen 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)
  • Beden 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 kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanmak amacıyla 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, x ve y ofsetlerini kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanan satır içi sınıfın avantajlarını sağlar. (I3ad98)
  • İki parmak ucunu yakınlaştırmak için Modifier.zoomable eklendi (Id5d63)
  • Açma/kapatma düğmeli bileşenin desteği sonlandırıldı. Bunun yerine Modifier.toggleable özelliğini kullanın (I35220, b/157642842)
  • MutuallyExclusiveSetItem desteği sonlandırıldı. Bunun yerine Modifier.selectable kullanın. (I02b47, b/157642842)
  • Test etiketi için destek sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
  • Metin'e daha önce yanlışlıkla eklenmemiş fontWeight parametresini ekler (I56937)
  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I19d02)
  • VerticalScroller artık kullanıma hazır olarak sütun sağlar. HorizontalScroller artık Row'u kullanıma hazır olarak sunar. (Ieca5d, b/157020670)
  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon 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 göstergeleri göstermek için kullanın (I8425f, b/155287131)
  • VerticalScroller ve HorizontalScroller artık ScrollerPosition'da isReversed ayarlandığında ters kaydırmayı destekliyor (I953bd)
  • Metin düzenine kompozisyon ekleme desteği. (I1373c)
  • CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. DrawScope, Density arayüzünü uygulayacak ve LayoutDirection sağlayacak şekilde güncellendi. ContentDrawScope'taki DrawScope alt sınıfı silindi. Painter ve PainterModifier, DrawScope'un manuel olarak sağlamadığı bir RTL mülkünü artık kendileri sağlamamaları için güncellendi (I1798e)
  • Desteği sonlandırılan DrawBackground API'si, Değiştirici'deki drawBackground uzantı API'leri için kaldırıldı. Kod yollarını azaltmak ve Modifier'ın kompozisyonun bir parçası olarak oluşturulması şartını kaldırmak için renk, fırça ve boya drawBackground uygulamalarını yeniden yapılandırdık. (I0343a)
  • Bir Canvas'ı gösteren daha yüksek düzeydeki compose API'leri, bunun yerine CanvasScope'u göstermek için güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini yönetmesi gerekmez. Yine de bir tuvale erişmesi gereken tüketiciler, temel tuvalde çizim komutları göndermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
  • HorizontalScroller ve VerticalScroller, kayıtlı örnek durumunu kullanarak kaydırma konumlarını geri yüklemez. (Ia0fae, b/155075048)
  • FocusManagerAmbient kaldırıldı. Odak almak için FocusModifier.requestFocus işlevini kullanın. (Ic4826)
  • Tablo düzeni, yenilenmiş bir API ile tekrar kullanıma sunana kadar geçici olarak kaldırıldı. (Id88a7)
  • Durumsuz, açıklayıcı bir çizim API yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyut bilgileri de karşılık gelen içe yerleştirilmiş sınırlara göre kapsamlandırılır. Tüketicinin, çizim işlemlerini yapılandırmak için kendi Paint durum nesnesini koruması gerekmez.

    CanvasScopeSample eklendi ve demo uygulama, açıklayıcı grafik demoyu içerecek şekilde güncellendi (Ifd86d)

  • ColoredRect kaldırıldı. Bunun yerine drawBackground değiştiricisi olan kullanıcı kutusu (I983c7, b/152753731)

  • Metin alanına imleç rengi özelleştirmesi ekleme (I6e33f)

  • Artık onTextInputStarted geri çağırma işlevi tarafından sağlanan SoftwareKeyboardController'ı kullanarak yazılım klavyesini gizlemek/göstermek mümkün (I8dc44, b/151860051)

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

  • Sık kullanılan parametreleri Text() işlevine ekler. Şu anda bu parametrelerden az sayıdasını (ör. Text(style = TextStyle(textAlign = TextAlign.Center))) 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 sağlamak için CoreTextField/TextField focusIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)

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

  • Basma ve sürükleme gibi kullanıcı arayüzü durum değişikliklerine tepki veren bileşenlerin oluşturulmasını kolaylaştıran InteractionState ve Interaction eklendi (Icfe25, b/152525426)

  • RectangleShape, androidx.ui.foundation.shape.* klasöründen androidx.ui.graphics.* klasörüne taşındı. (Ia74d5, b/154507984)

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

  • TextField API güncellemesi: onFocus ve onBlur geri çağırma işlevleri, parametre içeren tek bir onFocusChange(Boolean) geri çağırma işlevine birleştirildi (I66cd3)

  • ScaleFit, ContentScale olarak yeniden adlandırıldı. ContentScale, Alignment API ile aynı modülde yer alması için ui-graphics modülünden ui-core modülüne taşındı. FillMaxDimension, Crop olarak yeniden adlandırıldı FillMinDimension, Fit olarak yeniden adlandırıldı ImageView.ScaleType eşdeğerleriyle daha iyi eşleşecek şekilde Fit, Inside olarak yeniden adlandırıldı Crop ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu, Alignment.Center ile kullanılan Fit'in ImageView.ScaleType.FIT_CENTER ile aynı sonucu, Alignment.Center ile kullanılan Inside'ın ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu elde ettiğini belirten dokümanlar eklendi (I45f09, b/152842521)

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

  • Metne renk parametresi ekler. Böylece, temada sağlanan stille manuel olarak birleştirilmesine gerek kalmadan metin stilinin renginin geçersiz kılınmasına olanak tanır. (I41a66)

  • DrawModifier API'yi iyileştirin:

    • draw() için alıcı kapsamını ContentDrawScope yaptı
    • draw() işlevindeki tüm parametreler kaldırıldı
    • DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
    • ContentDrawScope'ta drawContent() yöntemi var (Ibaced, b/152919067)
  • ColoredRect kullanımdan kaldırıldı. Bunun yerine Box(Modifier.preferredSize(width, height).drawBackground(color)) politikasını 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ı işlevleriyle değiştirildi (I225e4)

  • Çekilebilir, değiştiriciye taşındı (Id9b16, b/151959544)

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

  • enabled parametresini onay kutusu, anahtar ve açma/kapatma düğmesine ekleyin (I41c16)

  • Dalga efekti artık bir değiştiricidir. Tıklanabilir henüz dönüştürülmemiş olsa da önerilen kullanım Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763) şeklindedir.

  • Vektör grafikleri için mevcut alt kompozisyon API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector bileşenlerinin desteği sonlandırıldı ve VectorPainter tercih edildi.

    Image(Painter) API'si PaintBox(Painter) olarak yeniden adlandırıldı Image Asset yerine Vector Asset kullanan ancak Image Asset gibi davranan bir Vector composable oluşturuldu (I9af9a, b/149030271)

  • Belirli bir ImageAsset'i ekrana çizmenin yanı sıra boyutlandırma/düzenlemeyi de yönetmek için oluşturulan Image composable. Bu derlenebilir, belirli bir sabit boyutu veya minimum boyutu (Ibcc8f) desteklemenin yanı sıra, kendi boyutuna göre herhangi bir Painter örneğinin çizilmesini de destekler.

  • Button, FloatingActionButton ve Clickable için artık ayrı bir enabled parametresi vardır. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)

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

    Geleneksel Android uygulama geliştirmeyi Compose çerçevesiyle birleştirmek için faydalı olan bir ImageAsset örneği oluşturmak amacıyla android.graphics.Bitmap üzerinde Bitmap.asImageAsset() uzantı yöntemi oluşturuldu. (Id5bbd)

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

  • Grup bileşeni, sağdan sola yönlülüğe (Ic9e00) destek verir.

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

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

  • Yalnızca görünür öğeleri oluşturan ve düzenleyen kaydırılabilir bir liste bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan tüm değişiklikleri tam olarak ele almaması yer alıyor. (Ib351b)

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

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

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

  • Tuval bileşeni eklendi. Bu kompozisyon, belirli bir boyut kaplar (kullanıcı tarafından sağlanır) ve CanvasScope'u (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 kutu bileşeni eklendi. (I6e2a7)

  • Kaydırma çubuğu artık yerel Android fırlatma hareketi davranışını sergiliyor. (I922af, b/147493715)

  • DrawBorder, Border Modifier (Id335a) ile değiştirildi

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

  • ConstraintLayout kuralları oluştururken kullanılan yüzde parametresi, kesirli sayı olarak yeniden adlandırıldı. (Ida2db)

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

  • ConstraintLayout'ta RTL desteği düzeltildi. RTL'den haberdar olmayan API'ler eklendi. (I3b1c7)

  • ConstraintLayout için yeni bir DSL eklendi. Daha fazla ayrıntı için lütfen örneklere bakın. (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 desteği sonlandırılan RowAlign, ColumnAlign kaldırıldı. (If60d4, b/155858731)

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

  • offsetPx düzen değiştiricisi eklendi. Bu değiştirici, px cinsinden (dinamik) ofsetleri tanımlamak için kullanılabilir. (I5af57)

  • AlignmentLineOffset kompozitinin desteği sonlandırıldı. Lütfen bunun yerine relativePaddingFrom() değiştiricisini kullanın. CenterAlignmentLine bileşeni kaldırıldı. (I60107)

  • Yalnızca gelen ilgili kısıtlamalar belirtilmediğinde (min kısıtlamalar için 0 ve max kısıtlamalar için sonsuz) sarmalanmış düzene boyut kısıtlamaları ayarlayan defaultMinSizeConstraints düzen değiştiricisi eklendi. (I311ea, b/150460257)

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

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

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

  • Simetrik dolgu değiştirici 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)

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

  • Satır ve sütun için sırasıyla verticalGravity ve horizontalGravity parametreleri eklendi. (I7dc5a)

  • wrapContentWidth ve wrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama bekleyeceği şekilde güncellendi. Yerçekimi değiştirici, dikey veya yatay hizalamayı kabul edecek şekilde güncellendi. Satır, sütun ve grup, özel sürekli Hizalamaları desteklemek için güncellendi. (Ib0728)

  • Hizalama, rastgele değerlerle oluşturulabilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)

  • EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Material Buttons'ın innerPadding parametresi, padding olarak yeniden adlandırıldı. (I66165)

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

  • Doğal ölçümlere boyutlandırma değiştiricileri eklendi ve bu amaca hizmet eden bileşenlerin desteği sonlandırıldı. (I8295d)

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

  • Desteği sonlandırılan Sarma ve Ortaya yerleştirme bileşenleri kaldırıldı. (I29e23)

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

  • RowScope ve ColumnScope üyelerine artık Row ve Column dışından erişilebilir. (I3a641)

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

  • Düzen konumunu kaydırmaya yönelik LayoutOffset değiştiricisi eklendi (I0b8a3)

  • Oluşturma düzeninde Rtl için ilk destek (Ia5519)

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

  • AspectRatio kompozit öğesi, değiştiricinin lehine kaldırıldı. Eski FlexColumn, FlexRow bileşenleri ve Boşluk 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ükle seçim tutma yerlerini uygulayın. (I27032)

  • Metin Alanı Seçimi için LongPressAndDrag'ı uygular. (I17919)

Hata Düzeltmeleri

  • FocusModifier desteği sonlandırılmış, yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver getirilmiştir. FocusState ve FocusDetailedState için FocusState2'nin (I46919, b/160822875, b/160922136) desteği sonlandı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ı. Tıklanabilir, artık varsayılan gösterge olarak dalga efekti kullanır (uygulamanızda MaterialTheme {} ayarladıysanız). Bu nedenle, çoğu durumda tıklanabiliri kullanabilir ve dalga efekti göstergesini ücretsiz olarak alabilirsiniz. Dalganın rengi / boyutu / sınırlanmış parametresini özelleştirmeniz gerekiyorsa manuel olarak bir RippleIndication 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'u deneysel API yaptı (I4f2e9)
  • Kaydırma yönü kilidinin 1. sürümü, Oluştur'da uygulandı. (I1ce7a, b/150289741)
  • Pop-up'lar, iletişim kutuları ve menüler artık bağlama dayalı MaterialTheme'i (Ia3665, b/156527485) devralıyor
  • Layout() işlevinin measure bloğundan layout direction parametresi kaldırıldı. Ancak sayfa düzeni yönü, ölçüm kapsamı nesnesi (Ic7d9d) aracılığıyla geri çağırma içinde kullanılabilir.
  • AddAbsoluteArrangement: Satırdaki alt öğelerin RTL'de otomatik olarak yansıtılmaksızın düzenlenmesine olanak tanır (I3a1df)
  • @Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)
  • Bu değişiklikten önce, derleyici derleyici eklentisi, bir @Composable işlevi içinde yapıcı çağrıları (I5205a, b/158123804) varsa basit bir şekilde durduruyordu.
  • Activity veya Fragment'te işleyiş şekline benzer şekilde, önceden oluşturulmuş ViewModel'leri oluşturmaya veya 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 eksenindeki yarıçapın zorunlu x ekseni yarıçap parametresiyle eşleşmesi için varsayılan parametre içeren işlev kurucusu lehine tamamlayıcı oluşturma yöntemleri kaldırıldı.

    DrawScope.drawRoundRect, x ve y eksenindeki yarıçap için 2 ayrı kayan değer yerine tek bir Radius parametresi kullanacak şekilde güncellendi (I46d1b)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon 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 ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Id3434)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a)

  • TextField'in imlecinde yanıp sönen animasyon var (Id10a7)

  • Kısmi hareketler için artık GestureToken (Id7ae5) iletilmesi gerekmiyor

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I57bff)

  • Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için desteği sonlandırılma durumuna alındı. (I4cfdc)

  • AnnotatedString.Builder.addAnnotationString işlevini addStringAnnotation olarak yeniden adlandırın. (I5059e)

  • Alignment API güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)

  • Düzen ve DüzenDeğiştirici alt öğeleri farklı bir düzen yönü ile ölçülebilir. (Ibd731)

  • Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizilmesini desteklemek için ImagePainter'a ek isteğe bağlı rect parametresi eklendi

  • Öğeler kaldırıldığında AdapterList'te yaşanan kilitlenme düzeltildi (Ic64b0, b/153195921)

  • activity.setContent { } bloğuna eklediğiniz ilk düzeni ölçme şeklimizi değiştirdik. Önceden etkinlik ekranının tamamını doldurmak zorunda olan bu öğe, artık düzeninizi bir grup içine yerleştirmişsiniz gibi davranır: Bir ekrandan daha küçük olabilir ve sol üst ekrana yerleştirilir. Eski davranışı istiyorsanız düzeniniz için Modifier.fillMaxSize() işlevini uygulayabilirsiniz. (Ie88a7, b/153453714)

  • ui-text-compose modülü ui-text olarak yeniden adlandırıldı. ui-text artık CoreText ve CoreTextField bileşenlerini içeriyor (Ib7d47)

  • ui-text modülü, ui-text-core olarak yeniden adlandırıldı (I57ara)

  • ui-framework/CoreText, CoreTextField bileşenleri ui-text-compose altına taşındı. Projenize ui-text-compose öğesini ekleyebilirsiniz. (I32042)

  • runOnIdleCompose ve runOnUiThread artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)

  • [Değişken]Durum mülkü temsilcisi operatörleri, Kotlin 1.4 mülk temsilcisi optimizasyonlarını desteklemek için uzantılara taşındı. Arama yapanların by state { ... } veya by mutableStateOf(...)'u kullanmaya devam etmek için içe aktarma eklemesi gerekir. (I5312c)

  • DrawLayerModifier ve drawLayer() için clipToBounds ve clipToOutline varsayılan olarak false olarak ayarlandı. (I0eb8b, b/152810850)

  • LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)

  • Desteği sonlandırılan Center composable. LayoutSize.Fill + LayoutAlign.Center değiştiricisiyle veya uygun değiştiricilerin uygulandığı Box ya da Stack bileşenlerinden biriyle değiştirilmelidir (Idf5e0)

  • LayoutFlexible, LayoutWeight olarak yeniden adlandırıldı. Doldurulacak sıkı parametre yeniden adlandırıldı. (If4738)

  • DrawVector, normal bir birleştirilebilir işlevden, vektörü bir düzenin arka planı olarak çizecek bir Değiştirici drawVector() döndürecek şekilde değiştirildi. (I7b8e0)

  • Clip adlı birleştirilebilir işlevi, drawClip() değiştiricisiyle değiştirin. DrawClipToBounds, yalnızca bir dikdörtgen şekliyle katman sınırlarına göre kırpmanız gerektiğinde kullanabileceğiniz kullanışlı bir değiştiricidir. (If28eb)

  • DrawShadow birleştirilebilir işlevi, drawShadow() değiştiricisiyle değiştirildi. Gölgeler artık LayerModifier'ın bir parçası olarak çizilir. (I0317a)

  • androidx.compose.ViewComposer, androidx.ui.node.UiComposer'a taşındı androidx.compose.Emittable kaldırıldı. ComponentNode ile ek bir işlevi yoktu. androidx.compose.ViewAdapters kaldırıldı. Bu kullanım alanı artık desteklenmiyor. Compose.composeInto işlevinin 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'ya 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)

  • Sarma bileşiği desteği sonlandırıldı. LayoutAlign değiştiricisi veya Stack bileşeni (Ib237f) ile değiştirilebilir.

  • Düzen yönünün, üst düzen düğümünden alt öğelere iletilmesini sağladık. Düzen yönü değiştirici eklendi. (I3d955)

  • Yeni oluşturulan Modifier, orijinal Painter'a referans içerdiğinden Painter.toModifier öğesini Painter.asModifier olarak yeniden adlandırın. Bu referans, birden fazla Modifier örneğinde paylaşılabilir (I7195b).

  • olduğu için yaygın bir hata kaynağıdır.
  • LayoutPadding değiştiricide sağdan sola yönü destekleme (I9e8da)

  • Density ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current değerini kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (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 amacıyla 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 grubu eklendi.
    • (I79530)
  • Ambiyans API'de önemli değişiklikler. Ayrıntılar için günlüğe ve Ambient<T> belgelerine bakın (I4c7ee, b/143769776)

  • Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi tam sayı konumları artık null değil. Sorgulanan hizalama çizgisi yoksa AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)

  • Yeniden oluşturma işlemlerinde kilitlenmeye neden olan bir ConstraintLayout hatası düzeltildi. (Ibee5a, b/158164341)

  • WithConstraints sona eklenen lambda API'si değiştirildi. Artık iki parametre yerine, constraints ve layoutDirection'e 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 içsel ölçüm işlevleri artık, içsel sorgu API'sine dolaylı olarak yayılan düzen yönünü sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)

  • LayoutDirectionAmbient özelliğinin desteği sonlandırıldı. Yerel ayar tarafından tanımlanan düzen yönünü okumak için ConfigurationAmbient (I851b1) üzerinde localeLayoutDirection'ı kullanın.

  • LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)

  • ParentData bileşeninin desteği sonlandırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya ölçüm bloğunda tanınmaları için düzen alt öğelerini etiketlemeniz yeterliyse LayoutTag değiştiriciyi kullanmanız gerekir. (I51368, b/150953183)

  • OnPositioned ve OnChildPositioned kompozisyon işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier ekleyin. (I2ec8f)

  • LayoutPadding'de negatif dolguya izin verilmez. Negatif konum ofsetleri için bunun yerine LayoutOffset kullanılmalıdır. (Ifb5b1)

  • WithConstraints, LayoutDirection parametresini aldı (I6d6f7)

  • ComposeFlags.COMPOSER_PARAM işareti true olarak güncellendi. Bu, oluşturma eklentisinin kod oluşturma stratejisini değiştirecek. Bu durum, yüksek düzeyde @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 şekilde yönetmesi için sonraki @Composable çağrılarına iletilir. Bu, ikili kodda önemli bir değişikliktir ancak compose'in izin verilen tüm kullanımlarında kaynak düzeyinde uyumluluğu korumalıdır. (I7971c)

  • LayoutCoordinates, sağlananAlignmentLines'i bir Harita yerine bir Set yapmak ve LayoutCoordinates'in bir değer almak için get() operatörünü uygulamak üzere değiştirildi. Bu, değiştiricilerin her değiştirici için yeni bir koleksiyon oluşturmadan grubun bir veya daha fazla değerini değiştirmesini kolaylaştırır. (I0245a)

  • LayoutCoordinates artık bir konum özelliğine sahip değildir. LayoutModifiers, döndürme veya ölçeklendirme göz önüne alındığında position mülkü anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'dan diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() yöntemlerini kullanmalıdır.

    LayoutCoordinates, boyut mülkü için PxSize yerine IntPxSize kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullanır. Bu nedenle, tüm düzen boyutları kayan nokta değerleri değil, tam sayılar kullanmalıdır. (I9367b)

  • Kısıtlamalar API yüzeyinde yapılan iyileştirmeler (I0fd15)

  • TextDirection.Content (I48f36) eklendi

  • Kopyala, kes ve yapıştır işlemlerini doğru şekilde gösterecek şekilde araç çubuğu menüsünü ayarlayın. (Id3955)

  • Metin alanı seçimi için yüzen araç çubuğu ekleyin. (Ie8b07)

  • TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)

  • TextDirection, ResolvedTextDirection (I3ff38) olarak yeniden adlandırıldı

  • TextField Selection'a HapticFeedback ekleyin. (I58050)

  • Metin alanı seçimine Kopyala, Kes ve Yapıştır yöntemlerini ekleyin. (Idb70b)

  • Test etiketi ve semantikler silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i 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 ekleyin. (I49d53)

  • Yeni LifecycleOwnerAmbient artık kullanılabilir. Artık Compose kullanıcı arayüzüyle kullandığınız bir Activity, androidx.activity.ComponentActivity (veya AppCompatActivity) sınıfını genişletmelidir. android.app.Activity sınıfındaki setContent işlevinin desteği sonlandırıldı (Idb25a, b/153141084)

  • androidx politikasına uygun olması için ui-android-text paket adı (androidx.text), androidx.ui.text.platform ile değiştirildi. (I42711)