Temel Oluşturma

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 Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
20 Mart 2024 1.6.4 - - 1.7.0-alpha05

Yapı

Oluşturma işlemi, androidx içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her biri kendi sürüm notlarına sahip olan hedeflenmiş bir işlev alt kümesi içerir.

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

GruplandırAçıklama
compose.animationKullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun.
compose.derleyici@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin.
compose.temelKullanı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 derleyin. Bu, Compose'un daha üst düzey giriş noktasıdır ve www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak için tasarlanmıştır.
compose.material3Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşenler ile Jetpack Compose kullanıcı arayüzleri derleyin. Material 3, güncellenmiş tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri 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 modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları bildirme

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

Uygulamanızın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme konusuna bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sayı oluşturma

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

Sürüm 1.7

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha05 yayınlandı. 1.7.0-alpha05 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Köprülerin stilini belirlemesi için yerel deneme amaçlı LocalTextLinkStyle bestesi kaldırıldı. (Iebfa7)
  • onLinkClicked bağımsız değişkeniyle yapılan BasicText deneme amaçlı geçersiz kılması kaldırıldı. Köprü desteği için ileride bunun yerine yeni bir API kullanıma sunulacaktır. (I107d5)
  • TextFieldState ve TextFieldBuffer altındaki Kod Noktaları ile ilgili yöntemler ve özellikler kaldırıldı. Ayrıca, inChars son ekleri kalan seçim ve besteyle ilgili API'lerden kaldırıldı. (Ief7ce)
  • AnchoredDraggable adlı öğenin currentValue öğesi artık bir sabitleme noktasından geçerken güncellenecek. Önceki currentValue semantiği almak için settledValue kullanın, yalnızca sabit bir noktaya vardığınızda güncelleyin. İlerleme, artık bir özellik yerine bir işlev (başlangıç ve bitiş noktası gerektiren) olarak gösteriliyor. (Ibe6e8, b/318707189, b/298271489, b/294991954)
  • BasicTextField(state), TextFieldState, InputTransformation, OutputTransformation, TextFieldLineLimits, TextFieldDecorator kararlı sürüme yükseltildi. (I9582b)
  • Alt düzey IME ile ilgili testlerin ve diğer düşük düzey IME kullanım alanlarının yazılmasına yardımcı olması için InterceptPlatformTextInput kullanıma sunuldu. PlatformTextInputTestOverride desteği sonlandırıldı. (I862ed, b/322680547)
  • restrictedConstraints() öğesini iki yönteme bölün: fitPrioritizingWidth() ve fitPrioritizingHeight() (I6d7fd)

Harici Katkı

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

Sürüm 1.7.0-alpha04

6 Mart 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha04 yayınlandı. 1.7.0-alpha04 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Android U sonrası cihazlarda ekran kalemi el yazısı özelliği desteklenir. (I002e4)
  • TextFields uygulamasının, tercih edilen bir dili ayarlamak üzere belirli yerel ayarlarla IME'lere ipucu vermesini sağlamak için hintLocales, KeyboardOptions içine eklendi. (Id18c2)
  • value: String ve onValueChange: () -> String parametrelerini alan Deneysel BasicTextField2 ve BasicSecureTextField aşırı yüklemeleri kaldırıldı. (I568b4)
  • InputTransformation öğesinin uygulandığı BasicTextField2 öğesinin anlamını etkilemek için isteğe bağlı bir applySemantics işlevi ekleyin. (I74a2f, b/170648072)
  • Bu CL'de, oluşturma sırasında kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için GetScrollViewportLength semantik işlemini ekliyoruz. Bu değişiklik belgesi, temel kaydırılabilir listelerde söz konusu mülkün kullanımını da uygular. (Ic5fa2)
  • BasicTextField2, BasicTextField olarak yeniden adlandırıldı. (Ie5713)
  • FocusRequester.createRefs artık kararlı (I4d92c, b/261436820)
  • Değiştirici düğümlerin doğrudan scrollIntoView isteğinde bulunmasına olanak tanımak için DelegatableNode.scrollIntoView() özelliği kullanıma sunuldu. (I2b3b7, b/299939840)
  • Değiştirici düğümlerin yerel bir beste okumadan geçerli Android View sürümünü almalarını sağlamak için DelegatableNode.requireView() kullanıma sunuldu. (I40768)
  • Belirtilen konumda kalmak için çizgi dizinini, konumunu ve maksimum genişlik ve yükseklik sınırlamalarını gösteren, İçeriğe Dayalı Akış Satır Kapsamı ve İçeriğe Dayalı Akış Sütun Kapsamı içindeki bağlamsal düzen bilgilerini kullanıma sunuyoruz. Maksimum genişliği/yüksekliği aşan öğeler bir sonraki satıra geçebilir veya taşma ayarlarına bağlı olarak çıkarılabilir. (Id13f8, b/292114798)

Hata Düzeltmeleri

  • Belirli durumlarda TextField öğesinin enabled veya readOnly özelliklerinin açılıp kapatılmasının kilitlenmeye neden olmasına neden olan hata düzeltildi. (Iae17b)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha03 yayınlandı. Sürüm 1.7.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • onPlaced değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadan Modifier.Node adlı öğenin mevcut LayoutCoordinates değerini almanın bir yolu olarak DelegatableNode.requireLayoutCoordinates() kullanıma sunuldu. (Ia8657)
  • onPlaced değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadan Modifier.Node adlı öğenin mevcut LayoutCoordinates değerini almanın bir yolu olarak DelegatableNode.currentLayoutCoordinates kullanıma sunuldu. (Iaebaa)
  • AnchoredDraggable tarafından kullanılan DraggableAnchors performans optimizasyonları. (I89cff)
  • BasicTextField2 ve androidx.compose.foundation.text2 paketi kapsamındaki ilgili API'ler androidx.compose.foundation.text kuruluş birimine taşındı. (I9f635)
  • BasicTextField2 artık CodepointTransformation parametresini kabul etmiyor. BasicSecureTextField veya OutputTransformation kullanın. (Id34ff)
  • Yalnızca iki AnnotatedStrings öğesinin ek açıklamalarını karşılaştırmak için bir yöntem eklendi. (I32659)
  • Karşınızda MaxLines ve Overflow ile ContextualFlowRow ve Geliştirilmiş FlowRow/Column. Deneme amaçlı FlowRow ve FlowColumn ile ilgili geliştirmeleri duyurmaktan mutluluk duyuyoruz. Artık maxLines ve taşma desteğinin yanı sıra ilk olarak ContextualFlowRow ve ContextualFlowColumn desteği de sunulmaktadır. Bu güncelleme, en iyi performans bileşenleri sağlamak için tasarlanmıştır. ContextualFlow* küçük bir maxLines yapılandırmasından ve dinamik +N daha fazla düğmeden yararlanan çok sayıda öğe için, FlowRow ve FlowColumn ise 100'den az öğe içeren az sayıda öğe için idealdir. Önemli: Çapraz eksene uygun olup olmamalarından bağımsız olarak tüm öğelerin oluşturulduğu FlowRow veya FlowColumn ürününde mevcut davranışı korumak için başlatma sırasında overflow değerini FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin uygulamalı örneklerini görmek için ContextualFlowRowSample ve FlowRowSample özelliklerini keşfedin. (Ib9135, b/293577082)

Hata Düzeltmeleri

  • İmleç animasyonu artık açık ve kapalı durumları arasında kare isteğinde bulunmuyor. (Ia2253)
  • KeyboardOptions' kullanımdan kaldırılan kopya oluşturucular artık tüm özellikleri doğru şekilde kopyalayacak. (If12de)

Sürüm 1.7.0-alpha02

7 Şubat 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha02 yayınlandı. Sürüm 1.7.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • HorizontalPager, VerticalPager ve PagerState, kararlı sürüme yükseltildi. (I67660, b/316966909)
  • Uygulama genelinde Metin'deki bağlantıların stilini değiştirmeye olanak tanıyan yerel LocalTextLinkStyle kompozisyonu eklendi. Uygulamada kendi temanızı kullanıyorsanız bu besteyi temalarınıza göre yerel olarak ayarlamanız gerekir. Malzeme teması kullanılırken, bağlantının rengi varsayılan olarak Malzemenin birincil rengine ayarlanır. (I7eb10)
  • Geliştiricilere Jetpack Compose'da zengin içerik almak için bir yöntem sağlayan receiveContent değiştiricisi kullanıma sunuldu.
  • receiveContent, yazılım klavyesi tarafından veya Panoya yapıştırma işlemi aracılığıyla sağlanan zengin içeriği kabul etmek için BasicTextField2 ile entegre olur. (I81b72)
  • Bu değişiklikte, diğer kullanım alanlarını açığa çıkarmak ve daha fazla esneklik sağlamak için çağrı cihazındaki SnapFlingBehavior yerine TargetedFlingBehavior getiriyoruz. (I762ea)
  • Bu değişiklikle 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 yaymaya olanak tanıyan bir FlingBehavior olan TargetedFlingBehavior öğesini tanıtın. (I6a207)

Hata Düzeltmeleri

  • BasicTextField2, yazma işlemi görünümün dışına kaydırıldığında veya giriş nedeniyle görünümün dışına çıkarken artık imleci görünümde tutar. (Ieb856, b/237190748)

Harici Katkı

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

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha01 yayınlandı. Sürüm 1.7.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Yeni bir Indication API eklendi, IndicationNodeFactory. Bu durum, önceki (artık kullanımdan kaldırılan) rememberUpdatedInstance API'ye kıyasla daha etkili Indication uygulamaları sağlar. Taşıma bilgileri için developer.android.com adresine bakın.
  • clickable / combinedClickable / selectable / toggleable artık null özellikli MutableInteractionSource parametresini kabul ediyor. Null ise ve sağlanan Indication bir IndicationNodeFactory ise Indication yalnızca gerektiğinde geç yüklenebilir. Bu da performansı artırır. MutableInteractionSource parametresini kaldırmıyor ve kullanmıyorsanız null değerini iletmeniz önerilir.

API Değişiklikleri

  • AnchoredDraggable ürününde DecayAnimation özelliği uygulanmaktadır. Bu değişiklik, AnchoredDraggable öğesine bir decayAnimationSpec parametresi ekler. Bu parametre, sabitleyicilerden birine ayarlanırken azalma animasyonunun kullanılmasına olanak tanır. Ayrıca, her bir spesifikasyonun kullanım alanının anlaşılmasına yardımcı olmak için mevcut animationSpec öğesinin snapAnimationSpec olarak yeniden adlandırılması da bu değişiklik kapsamındadır.
  • BasicTextField2 deneysel olarak kullanılabilir. Özellik yaklaşık olarak BasicTextField ile benzer özelliklere sahip olmalı ve davranış, üretime hazır olmalıdır. Ancak API şimdilik deneme aşamasındadır. Sabitlemeden önce BasicTextField olarak yeniden adlandırılır ve aynı pakete taşınır.
  • BasicTextField2 için OutputTransformation API'sinin ilk taslağı kullanıma sunuldu. Bu API, eski BasicTextField içindeki VisualTransformation kullanım alanlarının çoğu yerine geçer. Ancak, henüz tamamlanmamıştır ve bazı işlevler düzgün çalışmayabilir. Ancak kullanım alanlarınızda API kullanılabilirliğiyle ilgili geri bildirimde bulunursanız memnun oluruz. (aosp/2708848)
  • Metne bağlantı ve tıklanabilir öğe eklemeye olanak tanıyan LinkAnnotation kullanıma sunuldu. Bağlantılar özelliği henüz tamamlanmamıştır ve daha fazla API değişikliği yapılacaktır.
  • Geliştiricilere Jetpack Compose'da zengin içerik almak için bir yöntem sağlayan receiveContent değiştiricisi kullanıma sunuldu.
  • receiveContent, yazılım klavyesi tarafından veya panodan yapıştırma yoluyla sağlanan zengin içeriği kabul etmek için BasicTextField2 ile entegre olur.
  • KeyboardOptions.shouldShowKeyboardOnFocus, BasicTextField odağında yazılım klavyesi isteme işleminin varsayılan davranışını devre dışı bırakmanıza olanak tanır.
  • TextInputService ve LocalTextInputService desteği sonlandırıldı. Bunun yerine platform IME API'leriyle doğrudan entegrasyon için PlatformTextInputModifierNode kullanın. (aosp/2862698)
  • Indication#rememberUpdatedInstance desteği sonlandırıldı. Kaçınılmaz bir performans kaybına sahiptir ve diğer optimizasyonları önler. Bunun yerine yeni IndicationNodeFactory API'yi kullanmanız gerekir.

Hata Düzeltmeleri

  • VisualTransformation geçirildiğinde BasicTextField, artık küçük bir ofset eşleme seçkisini önceden doğrulayacak. Bu, daha sonraki ölçümlerde veya çekiliş geçişlerinde giderilemez istisnalara yol açan yaygın kodlama hatalarını yakalamaya yardımcı olur. Oluşturma sırasında yanlış bir şekilde düzenleme yaptığınızda, geliştiricilerin geliştirme sırasında bu hataları görme olasılığı artar ve böylece üretim kilitlenmelerinin önlenmesine yardımcı olursunuz. (I0fd42)
  • Geçersiz bir dizin için geçersiz bir dizin döndürürseniz VisualTransformation tetiklenmez (b/316401857 )

Sürüm 1.6

Sürüm 1.6.4

20 Mart 2024

androidx.compose.foundation:foundation-*:1.6.4 yayınlandı. 1.6.4 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

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

Sürüm 1.6.3

6 Mart 2024

androidx.compose.foundation:foundation-*:1.6.3 yayınlandı. 1.6.3 sürümü bu kayıtları içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.foundation:foundation-*:1.6.2 yayınlandı. 1.6.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Doğru şekilde sıfırlanmayan AnimateContentSize sorununu düzeltin. (I07051)
  • Bazı durumlarda intrinsicHeight metnin aşırı önbelleğe alınmasına neden olan sorun düzeltildi. (3cd398, b/217910352)

Sürüm 1.6.1

7 Şubat 2024

androidx.compose.foundation:foundation-*:1.6.1 yayınlandı. 1.6.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Sınırın üzerine kaydırıldığında kademeli ızgara ölçümü düzeltildi. (bffc39)
  • Büyük boyutlu düzen kontrolü ekleyin. (e74af5)
  • 0 boyutlu öğelerin, kademeli ızgaranın başlangıcındaki yerleşimi düzeltildi. (785f94)
  • onRelease geri aramasını, onForgotten ile aynı sırayla arayın. (31ce3b)

Sürüm 1.6.0

24 Ocak 2024

androidx.compose.foundation:foundation-*:1.6.0 yayınlandı. 1.6.0 sürümü bu kayıtları içerir.

1.5.0'dan sonraki önemli değişiklikler

  • Önceden tanımlanmış bağlayıcılar arasında sürükleme ve animasyon yapma yeteneğini ortaya çıkaran yeni Değiştirici Modifier.anchoredDraggable. Bu değiştiricinin Modifier.swipeable öğesinin yerine kullanılması amaçlanmıştır. taşıma rehberinde bu hizmeti nasıl kullanacağınızı ve Modifier.swipeable'ten taşıma işlemini nasıl yapacağınızı öğrenebilirsiniz.
  • Uygulamalar ve bileşenler arasında sürükleme ve bırakma işlevi eklendi. Başlamak için DragAndDropTarget, Modifier.dragAndDropSource ve diğer API'leri inceleyin
  • Modifier.draggable2D, kolay 2D sürükleme desteğine olanak sağlayan yeni değiştiricidir. Örneğe bakın.
  • Oluşturma sırasında yüzey temelli bileşenleri eklemeyi kolaylaştırmak için AndroidExternalSurface ve AndroidEmbeddedExternalSurface eklendi
  • Pager ve snapFlingBehaviour için çeşitli API değişiklikleri ve iyileştirmeler
  • Kararlı API'lere çeşitli odak, metin ve ek API'ler sunulmuştur.

Sürüm 1.6.0-rc01

10 Ocak 2024

androidx.compose.foundation:foundation-*:1.6.0-rc01 yayınlandı. 1.6.0-rc01 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Sürüm 1.6.0-beta03

13 Aralık 2023

androidx.compose.foundation:foundation-*:1.6.0-beta03 yayınlandı. 1.6.0-beta03 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

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

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.foundation:foundation-*:1.6.0-beta02 yayınlandı. 1.6.0-beta02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Yalnızca geçişli kaydırmadan sonra canScroll güncellenmeme sorunu düzeltildi. (I60a86)
  • Küçük kaydırmalardan sonra Modifier.animateItemPlacement() ve LookaheadScope için düzeltme uygulandı. (I3a2b7)

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.foundation:foundation-*:1.6.0-beta01 yayınlandı. 1.6.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alıcı DragAndDropTarget öğesini açık bir şekilde üstlenir ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda'ya sahiptir. Şu anda DragAndDropModifierNode için iki fabrika işlevi mevcuttur. Biri aktarımları almak, diğeri veri aktarımı için kullanılır (I69481)
  • maximumFlingVelocity, Kayan öğe olarak gösterilecek şekilde güncellendi. Dokümanlar, maximumFlingVelocity birliği hakkında daha net bilgi verecek şekilde güncellendi. (I8adc7)
  • DragAndDropModifierNode fabrikasındaki onDragAndDropStart, acceptDragAndDropTransfer olarak yeniden adlandırıldı.

    acceptsDragAndDropTransfer, sürükle ve bırak oturumundan kabul etmesi için dragAndDropTarget Modifier öğesine eklendi. Bu lambda, sürükle ve bırak oturumuyla ilgileniyorsanız geçerli bir DragAndDropTarget döndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'lar bu şekilde değiştirilmiştir.

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

  • startDragImmediately uygulamasının AnchoredDraggable içinde gösterilmesi, bu uygulama kullanılırken sürükleme hareketlerinin algılanmasını sağlar. Widget, bir hedef sabiti gösterirken bunu ayarlamak yararlıdır. Örneğe bakın. (Ie6d13, b/285139987)

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

  • DragAndDropInfo, DragAndDropModifierNode.drag türü olarak kaldırıldı ve artık transferData, süsleme boyutu ve sürükleme dekorasyonu DrawScope lambda parametrelerini alıyor

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

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

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

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

  • Modifier.magnifier öğesinin clippingEnabled parametresi, clip olarak yeniden adlandırıldı.

  • Modifier.magnifier öğesinin magnifierCenter parametresi, aynı varsayılan davranış korunarak boş değer atanabilir hale getirildi. (I6aa66)

  • Materyal SwipeToReveal API'leri (Kartlar ve Çipler için), artık bu slotları oluşturmak için veri sınıfı tabanlı örnekler yerine slot tabanlı API'leri (Compose tarafından önerildiği gibi) kullanmaktadır. Bu son derece önemli bir değişikliktir. Yeni API'nın nasıl kullanılacağıyla ilgili örnekler için lütfen demoyu ve örnek kodu inceleyin. (Ia8943)

Hata Düzeltmeleri

  • PageSize.Fixed için eşittir ve karma kodunu uygulayın. (Ie3ede, b/300134276)
  • minWidth değiştiğinde BasicText düzeninin küçülmesine neden olan ve ilk ölçüm kısıtlamalarından maxWidth (maxWidth Idb19c) minWidth daha az olan bir hata düzeltildi
  • ArcLine bölgesinde Gradyan Süpürme özelliği için oluşturucu desteği eklendi. (I4d5bb)
  • Pencere Inset değişikliğiyle ikili program uyumluluğu sorununu düzeltme (Iee695)
  • Mikro karşılaştırmalar, bu olmadan daha iyi performans gösterdiğinden Material3 Çip/Düğmesi için malzeme temel 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ınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Modifier.dragAndDrawSource, onDrawDragShadow lambda'yı drawDragDecoration olarak yeniden adlandırdı ve DragAndDropInfo adlı boyut parametresi dragDecorationSize olarak yeniden adlandırıldı. (Id0e30, b/303904810)
  • BasicTextField2 öğesinin decorationBox parametresi, decorator olarak yeniden adlandırıldı. Türü de eğlenceli bir arayüz olan TextFieldDecorator olarak değiştirildi. (I23c1c)

Hata Düzeltmeleri

  • BasicTextField ile ilgili onValueChange şartlarıyla ilgili dokümanlar iyileştirildi. (I90fc9, b/160257648)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha07 yayınlandı. Sürüm 1.6.0-alpha07 bu kayıtları içerir.

API Değişiklikleri

  • Özel metin düzenleyicilere yönelik yazma testleri için PlatformTextInputMethodTestOverride kullanıma sunuldu. (Id159b)
  • GraphicsSurface adlı odanın adı AndroidExternalSurface (I11680) olarak değiştirildi
  • Doğrusal olmayan yazı tipi ölçeklendirmesini devre dışı bırakmak için DisableNonLinearFontScalingInCompose geçici işareti eklendi. Bunları temizlemek için zamana ihtiyacınız varsa testlerinizde DisableNonLinearFontScalingInCompose = true değerini ayarlayın. Bu bayrak, Compose 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)
  • Ayırmalardan kaçınan ColorList ve ColorSet koleksiyonları eklendi. (I744bd)
  • Bu değişiklik sayesinde, SnapLayoutInfoProvider uygulamalarının uygulama ayrıntısına dönüştürülmüş shortSnapVelocityThreshold kaldırılır. (I65f6d)
  • Sürükle ve bırak oturumlarını başlatmak için dragAndDropSource Değiştirici ve dragAndDropTarget sürükle ve bırak oturumlarından almak için Değiştirici ekler (Ib7828, b/286038936)
  • SnapPositionInLayout belgelerini ve konum yöntemini güncelleyin. SnapPositionInLayout ürününde konum yöntemine içerik dolgusu ekleyin. (Id7938, b/300116110)
  • TextFieldState öğesine, kullanıcı tarafından yapılan değişiklikleri geri alma/yeniden yapma olanağı sağlayan UndoState eklendi. (Icc024)

Hata Düzeltmeleri

  • Hız değişikliğinden sonra basicMarquee animasyonunun çalışmaması 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ınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.

Yeni Özellikler

  • SurfaceView, TextureView: GraphicsSurface() ve EmbeddedGraphicsSurface() için yeni Composable sarmalayıcılar. Bu, deneysel bir API olup üzerinde değişiklik yapılabilir. (I9ddb2)
  • Modifier.magnifier() artık kararlı bir API. Bu, değiştiricinin kendisindeki satır içi parametrelerin yerine MagnifierStyle öğesinin kaldırılmasını da içerir. (I83bec, b/298381260, b/262367109, b/261438887)

API Değişiklikleri

  • ScrollScope uygulamasında updateCurrentPage ve updateTargetPage kullanılmaya başlandı. Bunlar, PagerState.scroll boyunca animasyonlu kaydırmanın özelleştirilebilmesi için gereken son parçalardır. (I9cad5, b/267744105, b/243786897)
  • Yoğunluğu SnapFlingBehavior öğesinden kaldır. Tüm SnapLayoutInfoProvider uygulamalarında, halihazırda yoğunluğa erişim için bir yol mevcuttur. Alıcı kapsamı kaldırılabilir. Bu da hem SnapFlingBehavior hem de SnapLayoutInfoProviders uygulamalarının daha basit bir şekilde uygulanmasına yol açar. (I153c3)
  • Kararlı olarak işaretlenen daha fazla değiştirici var. (I56af1, b/298046462)
  • SnapStepSize, SnapLayoutInfoProvider klasöründen kaldırıldı. Hesaplama, Düzen bilgileri kullanılarak yapılmalı ve yaklaşım veya tutturma ofsetleri aracılığıyla sağlanmalıdır. (If320c)

Davranış Değişiklikleri

  • Compose'da daha iyi okunabilirlik ve erişilebilirlik sağlamak için artık doğrusal olmayan yazı tipi ölçeklendirme kullanılıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda, küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinlerin boyutu biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğinde amaçlanan yükseklikle orantılı biçimde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar sayfasına bakın. (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ınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

  • Mevcut BasicTextField API'de olduğu gibi BasicSecureTextField için sabit bir değeri kabul eden aşırı yüklemeler ve bu değeri değiştirmek için geri çağırma ekleyin. (Ia4882)
  • API 33 ve sonraki sürümlerde kayan pencerelerden kaçınmak için composable olarak işaretlemek üzere Modifier.preferKeepClear() ekleyin. (Ib51d5, b/297260115)
  • ScrollView ve RecyclerView gibi View bileşenlerindeki fırlatma hızları ViewConfiguration.ScaledMaximumFlingVelocity ile sınırlıdır. Oluşturma işlemi artık Draggable için geçerli olan kendi maximumFlingVelocity sürümünü içeriyor. (Ibf974)
  • Kullanımdan kaldırılan Pager ve PagerState aşırı yüklemeleri kaldırıldı. (Iea07e)
  • BasicTooltipBox öğesi compose.foundation koleksiyonuna eklendi ve PlainTooltipBox ile RichTooltipBox, TooltipBox öğesini yeni PlainTooltip ve RichTooltip composable'larla 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ınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Alt bestelerin yaşam döngüsünü yönetmek ve yeniden kullanmak için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)
  • Modifier.focusGroup sürümü, kararlı API'lere yükseltildi. (I7ffa3)
  • Mevcut BasicTextField API'de olduğu gibi BasicTextField2 için sabit bir değeri kabul eden aşırı yüklemeler ve bu değeri değiştirmek için geri çağırma ekleyin. (I3f2b8)
  • GridItemSpan::currentLineSpan artık kararlı bir API. (Icc29c)
  • contentDescription kabul eden tuval artık kararlı bir API. (Ib3d29)
  • Ölçüm gerçekleştikten sonra ScrollState kullanan bileşenin viewPort boyutunu bilmenin bir yolu olan viewportSize özelliği ScrollState ürününde kullanıma sunuldu. (I8b85a, b/283102682)
  • Çağrı Cihazı'ndaki önceden getirmenin Görünümler'deki davranışla eşleşmemesine neden olan sorun düzeltildi. (I93352, b/289088847)
  • Modifier.consumeWindowInsets(PaddingValues) artık kararlı.
    • Deprecated Modifier.consumedWindowInsets API 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ınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • Aşırı LazyLayout yüklemesi eklendi. LazyLayoutItemProvider lambda değerini kabul ediyor, daha önce olduğu gibi düz bir nesne kabul etmiyor. Önceki aşırı yükleme kullanımdan kaldırıldı. (I42a5a)
  • privateImeOptions (Idb772) yapılandırması için destek eklendi

Hata Düzeltmeleri

  • Klavyeyi gösteren ve readOnly doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktayken readOnly ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha02 yayınlandı. Sürüm 1.6.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • Pager uygulamasında ölçüm geçişi tamamlandıktan sonra toplanan bilgilerle PagerLayoutInfo özelliği kullanıma sunuldu. Pager içinde ölçülen tek bir Sayfa ile ilgili bilgiler olan PageInfo de kullanıma sunuldu. (Iad003, b/283098900)
  • composable'lara izin verilen girişleri belirten ek ek açıklamalar (I51109)
  • SemanticsNodeInteraction.requestFocus, testlerde odaklanma isteğinde bulunmanın daha kolay ve bulunabilir bir yolu olarak eklendi. (Ie8722)
  • PlatformTextInput* API tümüyle yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController ve LocalSoftwareKeyboardController artık deneme aşamasında değil. LocalSoftwareKeyboardController artık uygun bir CompositionLocal. (I4c364)
  • Modifier.transformable, kaydırma işleminin yönünü belirlemeye yardımcı olmak için artık canPan parametresinde kaydırma delta değeri sağlıyor. (I692aa, b/266829800)
  • consumeWindowInsets değiştiricisini, AbstractComposeView üst sınıfını genişletecek şekilde günceller (Iacd74, b/269479941)

Sürüm 1.6.0-alpha01

21 Haziran 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha01 yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

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

API Değişiklikleri

  • InputConnection#requestCursorUpdates (I0c69b) kanalını destekleyin
  • Özel animasyon özelliklerine izin vermek için scrollAnimationSpec kullanıma sunuldu. BringIntoViewCalculator ayarı BringIntoViewScroller olarak güncellendi. (Idb741)
  • Bit eşlem öğeleri yüklenmeye çalışılırken, yüklenemeyen öğe yolunun açıklamasına yer verilen atılabilir öğeleri sarmalamak için ResourceResolutionException türünü ekleyin. (I19f44, b/230166331, b/278424788)
  • Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
  • Scrollable gibi bileşenlerin bringIntoView isteklerine yanıt verme şeklini özelleştirmek için kullanılabilecek bir BringIntoViewCalculator API'si kullanıma sunuldu. İsteğe bağlı olarak BringIntoViewCalculator örneğini kabul etmek için kaydırılabilir öğenin aşırı yükü değiştirildi. (Iaf5af)

Hata Düzeltmeleri

  • Değişebilir durum / Animatable oluşturmaya yönelik lint kontrollerine benzer şekilde, bir bileşimde MutableInteractionSource oluşturup hatırlamadığınız konusunda uyarı veren bir hata analizi denetimi eklendi. (I5daae)
  • Fareyle seçme desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişler ve karakter bazında küçülür. (Ic0c6c, b/180639271)
  • Özel bir 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ınlandı. 1.5.4 sürümü bu kayıtları içerir.

Sürüm 1.5.3

4 Ekim 2023

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

Hata Düzeltmeleri

  • Metinde, anlamların geçersiz kılındığı belirli durumlarda kilitlenmelere neden olan bir hata düzeltildi.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.foundation:foundation-*:1.5.1 yayınlandı. Sürüm 1.5.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • Klavyeyi gösteren ve readOnly doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktayken readOnly ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.foundation:foundation-*:1.5.0 yayınlandı. 1.5.0 sürümü bu kayıtları içerir.

1.4.0'dan sonraki önemli değişiklikler

  • Modifier.clickable,Modifier.draggable, Modifier.scrollable, düzen değiştirici ve daha fazlası dahil olmak üzere temel değiştiriciler Modifier.Node API'ye taşındı ve böylece ilk bileşimden kaynaklanan ek yük azaltıldı.
  • Çağrı Cihazları kararlılığında iyileştirmeler. Birçok hata giderildi.
  • pageCount parametreleri artık Çağrı Cihazı yerine PagerState içinde bulunuyor

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.foundation:foundation-*:1.5.0-rc01 yayınlandı. 1.5.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • mutableStateOf() çağrılarının temel öğeler için karşılık gelen özel türlerine taşınmasını öneren isteğe bağlı bir denetim mevcuttur. lint kimliği: AutoboxingStateCreation. Daha önce bu inceleme tüm projeler için varsayılan olarak etkindi. Bu uyarıyı Android Studio'nun düzenleyicisinde ve projenizin lint çıkışlarında görmek için, modülünüzün build.gradle veya build.gradle.kts yapılandırmasında warning "AutoboxingStateCreation" öğesini aşağıda gösterildiği gibi tanımlayarak önem derecesini bilgi amaçlı iken uyarı (veya daha yüksek) olarak değiştirin:

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

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.foundation:foundation-*:1.5.0-beta03 yayınlandı. 1.5.0-beta03 sürümü bu kayıtları içerir.

Sürüm 1.5.0-beta02

7 Haziran 2023

androidx.compose.foundation:foundation-*:1.5.0-beta02 yayınlandı. 1.5.0-beta02 sürümü bu kayıtları içerir.

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.foundation:foundation-*:1.5.0-beta01 yayınlandı. 1.5.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Geç liste/ızgaralar/vb. ölçümler sırasında ayırmaları azaltın (Iaf9e2)
  • Anlık görüntüler uygulanırken azaltılmış ayırmalar (I65c09)
  • İlkbahar animasyonlarından ayırmalar kaldırıldı (Ie9431)
  • Tahsis TextLayout öğesinden kaldırıldı (I0fd11)
  • İşaretçi hızı izlemedeki birden fazla ayırma kaldırıldı (I26bae)

Sürüm 1.5.0-alpha04

10 Mayıs 2023

androidx.compose.foundation:foundation:1.5.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha04 yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Tam parametre listesine sahip, optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • LazyGridState ile kullanılabilecek bir SnapLayoutInfoProvider ekleyin. (I92134, b/269237141, b/260914964)
  • Geçmeli kademeli ızgaralar öğe kapsamına deneysel Modifier.animateItemPlacement() eklendi. Otomasyon konum değişimi/animasyonları yeniden düzenleme işlemini gerçekleştirmek için bunu öğelere uygulayabilirsiniz. (I4b62d, b/257034719)
  • GridCells.FixedSize sürümünü kararlı sürüme yükseltin. FixedSize, her bir hücrenin çapraz eksende tam boyut aldığı ve kalan alanın çapraz eksen düzenlemesine göre dağıtıldığı bir LazyGrid tanımlar. (I8542f)
  • Çağrı Cihazı için PagerScope alıcı kapsamı ve belirli bir sayfa ofsetinin hesaplanması için bir yardımcı program işlevi kullanıma sunuldu. (If2577)
  • Hızlı geçiş davranışı oluştururken snapPositionalThreshold öğesini ekleyin. Çağrı Cihazı'nda kısa yapıştırma için bir konum eşiği belirtmek üzere bu parametreyi kullanın. (If8f7f)
  • SnapLayoutInfoProvider.calculateSnappingOffsetBounds, calculateSnappingOffset ile değiştirildi. Bu yeni yöntemde yalnızca bir sonraki ofseti tutturmak isteriz. Sınırların hesaplanması, tutturma işleminin nasıl gerçekleşmesi gerektiğine bağlı olarak değişebileceğinden uygulama düzeyinde yapılmalıdır. (I923a4)
  • LazyStaggeredGrid API kararlı sürüme yükseltildi. (I633a5)
  • pageCount, Horizontal/VerticalPager hesabından kaldırılsın mı? Bu, durum oluşturulurken sağlanmalıdır. PagerState ve rememberPagerState, pageCount şartlarını 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 şartlarını kabul edecek şekilde güncellendi. (Ifa3cb, b/266965072)
  • Çağrı Cihazı'nın SnapFlingBehavior ürününde shortSnapVelocityThreshold uygulamasını tanıtın. (I7379e, b/275579012)
  • FlowRowScope ve FlowColumnScope ekler. (I54fe2)

Hata Düzeltmeleri

  • Kısıtlamalar minWidth ve minHeight nedeniyle artık kilitlenmediğinde Metin'de anlam bilgisi almak için yapılan çağrılar. (İbd072)
  • Dialog composable tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmemesiyle ilgili regresyon düzeltildi. (I82551, b/262140644)

Sürüm 1.5.0-alpha03

19 Nisan 2023

androidx.compose.foundation:foundation:1.5.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha03 yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.

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

Oluşturulan metinde değişiklikler görürseniz davranış farkını onaylamak için NewTextRendering1_5 = false ayarlayarak hata ayıklayabilirsiniz. Bunun ayarlanması, yeniden oluşturma işlemini zorunlu kılar. 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çi yap. (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ı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • LazyGrid hücresinde sabit boyutlu hücreler için destek ve çapraz eksen düzenlemesiyle düzenleme desteği eklendi. (I83ed9, b/235121277, b/267942510)
  • LazyStaggeredGrid bölgesinde sabit boyutlu şeritler için destek eklendi ve bunların çapraz eksen düzenlemesiyle düzenlenmesi. (I7d519)
  • AnnotatedString içindeki UrlAnnotation dosyaları artık TalkBack gibi erişilebilirlik hizmetleriyle 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 semantik işlemini kullanarak doğrudan odaklanma isteğinde bulunacak. (I6ed05)
  • FlowRow içinde verticalArrangement ve FlowColumn içinde horizontalArrangement kullanarak eksenler arası boşluk bırakma/düzenleme desteği ekler. FlowRow/FlowColumn içindeki üst düzey verticalAlignment ve horizontalAlignment öğeleri de kaldırılır. Geliştiriciler bunun yerine Modifier.align kullanabilirler. 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ı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Metin ve BasicText, yeni değiştirici sistemi kullanılacak şekilde yeniden düzenlendi. Bu, birçok durumda önemli performans iyileştirmelerinin yapılmasını sağlar. Hiçbir değişiklik görünür olmamalıdır. (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 dahili öğeleri güncellendi. hoverable değiştiricisi, yalnızca etkinse 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 yapılmadan yayınlandı (yalnızca sürüm güncellemesi).

Sürüm 1.4.2

19 Nisan 2023

androidx.compose.foundation:foundation:1.4.2 ve androidx.compose.foundation:foundation-layout:1.4.2 yayınlandı. 1.4.2 sürümü bu kayıtları 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 kayıtları içerir.

Sürüm 1.4.0

22 Mart 2023

androidx.compose.foundation:foundation:1.4.0 ve androidx.compose.foundation:foundation-layout:1.4.0 yayınlandı. 1.4.0 sürümü bu kayıtları içerir.

1.3.0'dan sonraki önemli değişiklikler

  • Text ve TextField sürümlerine emoji uyumluluk entegrasyonuyla birlikte daha düşük düzeyli Paragraf eklendi. Emoji uyumluluğu yapılandırıldığında varsayılan olarak etkinleştirilir.
  • EmojiCompat, PlatformParagraphStyle kullanılarak belirli bir Metinde yapılandırılabilir.
  • LazyStaggeredGrid(I28252) kampanyasına tam satır aralığı desteği eklendi
  • Deneysel onHover, ClickableText Ekip Drive'ına 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 bestesi ve bestedeki tüm LaunchedEffect ile rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)
  • FlowRow ve FlowColumn, ana eksende yeterli alan olmadığında yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütun tabanlı düzenine olanak tanıyan @ExperimentalFoundationApi olarak kullanılabilir. (I3a7b2)
  • Modifier.basicMarquee(), kaydırma noktalı çerçeve efektiyle içerik görüntülemek 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 kayıtları içerir.

API Değişiklikleri

  • Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey PlatformTextInputAdapter API'si kullanıma sunuldu. (I58df4)
  • LazyStaggeredGrid öğesine ters düzen desteği ekleyin. (I3ef4a)

Hata Düzeltmeleri

  • BasicTextField adlı uygulamanın SetText semantik işlemi, metin arabelleğini IME güncellemeleriyle ve test işlevleriyle (ör. performTextReplacement) aynı kod yolunu kullanarak günceller.
  • 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 kayıtları içerir.

API Değişiklikleri

  • Layout yeniden kullanılacağında (örneğin, bir LazyColumn öğesi olarak) durumu düzgün bir ş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. Odaklanılan durumu düzgün bir şekilde sıfırlamak için FocusTargetModifierNode düzeltildi. (I65495, b/265201972)
  • Tuval üzerinde metin çizerken farklı harmanlama algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)
  • modifierElementOf() API kaldırıldı. Bunun yerine lütfen doğrudan ModifierNodeElement üzerinden uzatın. (Ie6d21)

Hata Düzeltmeleri

  • Seçim tutma yerleri düzenlendiğinde artık kısmi karakterler seçilemez. (Idedd1)
  • Boş TextField üzerinde ctrl+backspace tuşlarına basıldığında oluşan kilitlenmeyi düzelt (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 kayıtları içerir.

Yeni Özellikler

  • 1.3 sürümünden itibaren, Text ve TextField sürümlerine Emoji uyumlu entegrasyon ile birlikte daha alt düzey Paragraf eklendi. Emoji uyumluluğu 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 yine de etkin olması gereken öğeleri korumak için LazyLayouts genelinde kullanılan PinnableContainer API'sinin genel uygulaması eklendi. (If45a4)
  • PinnableContainer.PinnedHandle.unpin(), release() (I4667a) olarak yeniden adlandırıldı

Harici Katkı

  • LazyListLayoutInfo, LazyGridLayoutInfo ve LazyStaggeredGridItemInfo mülklerine mainAxisItemSpacing özelliği 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ı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.

Yeni Özellikler

  • LazyStaggeredGrid öğesine tam satır aralığı desteği eklendi (I28252)
  • ClickableText hedefine deneysel onHover 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 bestesi ve bestedeki tüm LaunchedEffect ile rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)

API Değişiklikleri

  • OverscrollEffect ön/sonrası API'lerini birleşik "dekoratör" applyToScroll ve applyToFling işlevleriyle birleştirir. Yeni API şekli ile fazla kaydırma efektinin nasıl uygulanacağına ilişkin örnekler için belgelerdeki güncellenmiş örneklere bakın. (I8a9c4, b/255554340)
  • Satır içi/kullanımdan kaldırılan gizli işlevlerin daha fazla tür/boşluk değeri (I24f91)
  • TextStyle uygulamasındaki LineBreak ve Hyphens API, kararlı sürüme geçirildi. (Ic1e1d)

Hata Düzeltmeleri

  • Animasyonlar devre dışı bırakılsa bile metin alanlarındaki imleç artık yanıp sönmeye devam edecek. (I95e70, b/265177763)
  • Modifier.basicMarquee artık sistem ayarlarında animasyonlar devre dışı bırakılmış olsa bile animasyon gösteriyor. (I23389, b/262298306, b/265177763)

Harici Katkı

  • TextInputSession ve TextInputService uygulamalarındaki notifyFocusedRect yöntemlerinin desteği tekrar sonlandı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ı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • FlowRow ve FlowColumn, ana eksende yeterli alan olmadığında yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütun tabanlı düzenine olanak tanıyan @ExperimentalFoundationApi olarak kullanılabilir. (I3a7b2)
  • Modifier.basicMarquee(), kaydırma noktalı çerçeve efektiyle içerik görüntülemek için deneysel olarak kullanılabilir. (I2df44, b/139321650)

API Değişiklikleri

  • FocusRequesterNode (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/2545299}{/15/38b/34FocusRequesterModifier
  • variationSettings ile AndroidFont kurucusu artık kararlı bir API ve yeni yazı tipi açıklayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)
  • Geçerli öğenin sabitlemesine olanak tanıyan bir yerel beste aracılığıyla geç listeler tarafından dağıtılan PinnableContainer API kullanıma sunuldu. Yani bu tür öğeler görünümden aşağı kaydırıldığında atılmaz. Örneğin, Modifier.focusable(), odaklanılan mevcut öğeyi bu mekanizma aracılığıyla 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 tepki verme şeklini yeniden yazın. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114)
  • Kullanımdan kaldırılan gizli işlevlerin daha fazla döndürme türü boş değer atanabilirliği (Ibf7b0)
  • Metni Static(default) veya Animasyonlu olarak tanımlamak için TextStyle öğesine deneme amaçlı TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated kullanın. (I24dd7)
  • Android platformunda (I00303) odak gezinme davranışını düzeltmek için TextFieldFocusModifier ekleyin
  • drawText içindeki maxSize: IntSize bağımsız değişkeni, diğer DrawScope işlevleriyle satır içi olması için size: Size ile değiştirildi. size varsayılan olarak Size.Unspecified değerine ayarlanır. Bu ayar, önceki varsayılan davranışı değiştirmez. (Icd27d)

Hata Düzeltmeleri

  • Daha doğal bir görünüm için SnapFlingBehaviour uygulamasındaki tutturma 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. Bir düzeltme gönderildi. Bu düzeltme bir sonraki Compose güncellemesinde hazır olacaktır. Geçici bir çözüm olarak 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 sürümünüzü 1.4.0-alpha03'e düşürün.

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.foundation:foundation:1.4.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha03 yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • Oluşturma kuralı kullanılan kullanıcı arayüzü testlerinde, withFrameNanos geri çağırmaları sırasında devam ettirilen devamlar, tüm çerçeve geri çağırma işlemlerinin çalışması bitene kadar dağıtılmaz. Bu, normal çalışırken oluşturma davranışıyla eşleşir. Ancak, eski davranışa dayanan testler başarısız olabilir. Bu, yalnızca doğrudan withFrameNanos veya withFrameMillis çağrısı yapan kodu etkilemelidir ve geri çağırma işlevinin içine taşınması gerekebilecek bu işlevlere aktarılan geri çağırma dışında bir mantığa sahiptir. Örnekler için bu EKL'deki animasyon testi değişikliklerine bakın.
  • withFrameNanos geri çağırmalarından sonra, ancak arayanların eş yordamları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şlemlerini tanıtın: PageUp, PageDown, PageLeft, PageRight. Bunların yalnızca API 29'dan kullanılabildiğini unutmayın. (Ida4ab)
  • composable'ları Çağrı Cihazı tarzında göstermenin bir yolu olan HorizontalPager ve VerticalPager ile tanışın. Çağrı Cihazlarını kontrol etmenin yanı sıra Çağrı Cihazı'nın mevcut durumu hakkındaki sorgu bilgilerini de kontrol etmek için PagerState kullanıma sunuldu. Çağrı Cihazı sayfasının boyutunu kontrol etmenin bir yolu olan PageSize kullanıma sunuldu. Bu, Çağrı Cihazları gibi bir bant oluşturmak için kullanılabiliyor. Tutturmanın, Çağrı Cihazı'nın hızla kaydırma davranışında nasıl çalışacağını kontrol etmenin bir yolu olan PagerSnapDistance kullanıma sunuldu. (I01120)
  • Uçuşun nereye geçeceğini anlamanıza yardımcı olmak için SnapFlingBehavior.performFling uygulamasında aşırı yük uyguladı. (I569f6)
  • OverscrollEffect#isEnabled kaldırıldı. Bu işareti hatırlamanız ve ayarlamanız gerekmez. Fazla kaydırmanın gösterilmesini istemediğiniz durumlarda (örneğin, ScrollableState#canScrollForward/backward değeri her ikisi de false döndürürse) etkinlikleri fazla kaydırma efektine dağıtmayın. (I1a4b0, b/255554340, b/255557085)
  • ScrollableState öğesinin her iki yönde de kaydırma için alanı olup olmadığını (aralık aralığının minimum / maksimum olup olmadığı) sorgulamak amacıyla ScrollableState#canScrollForward ve ScrollableState#canScrollBackward eklendi. Bu ayar, mevcut ScrollableState uygulamalarıyla geriye dönük uyumluluk için varsayılan olarak doğru değerine ayarlanır. Tüketiciler bu özelliği, kullanıcıya kaydırma için hâlâ alan olduğunu göstermek amacıyla kullanabilir. Ayrıca bu özellik, gereksiz işlerin azaltılması amacıyla deltaların belirli bir yönde kaydırma imkanı olmayan ScrollableStates konumuna yönlendirilmesini önlemek için de kullanılabilir. (Idf1a0, b/255557085)
  • Üst öğelerin kaydırma bilgilerini sorgulamak için Değiştirici API'si eklendi. (I2ba9d, b/203141462)
  • Hareketler kaydırma etkinliğine dönüşebilirken basma etkileşimlerini doğru bir şekilde ertelemek için Clickable içinde kullanılır.
  • Clickables işlevinin, Scrollable ViewGroup içinde kullanıldığında dalgaları doğru şekilde geciktirmemesi düzeltildi.
  • Hareketlerin kaydırma etkinliklerine dönüşmesi ihtimaline karşı bastırmaları doğru bir şekilde geciktirecek Çekmeceler ve E-Tablolar güncellendi.
  • snapStepSize adlandırmasını, SnapLayoutInfoProvider içindeki diğer yöntemlerle tutarlı olacak şekilde güncelleyin. (Ife67c)
  • EmojiCompat öğesi Compose koleksiyonuna eklendi (Ibf6f9, b/139326806)
  • consumedWindowInsets() adı consumeWindowInsets(), withConsumedWindowInsets() adı ise onConsumedWindowInsetsChanged() olarak değiştirildi ve Değiştiriciler herkese açık hale getirildi. (Ie44e1)

Hata Düzeltmeleri

  • Modifier.animateItemPlacement() ve Geç ızgaralardaki kilitlenme düzeltildi. Bu sorun, yeni öğe sayısının önceki öğeden küçük olduğu bazı durumlarda gerçekleşiyordu. (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ı. Sürüm 1.4.0-alpha02 bu kayıtları 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'lerinden geri döndür (I12197)
  • Görüntü alanı öğelerinin oluşturulması ve dışına yerleştirilmesi için Lazy API'lere parametre eklendi (I69e89, b/172029355)
  • BasicText ve BasicTextField öğelerine minLines parametresi eklendi. Bu composable'ların satır sayısına göre minimum yüksekliğinin ayarlanmasını sağlar (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ı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Hareket algılayıcıları için yeni bir yöntem (awaitEachGesture()) eklendi. forEachGesture() ile benzer şekilde çalışır, ancak hareketler üzerindeki döngü tamamen AwaitPointerEventScope içinde çalıştığından etkinlikler yinelemeler arasında kaybolmaz.
  • Hareketler arasında etkinliklerin kaybedilmesine izin verdiğinden forEachGesture() kullanımdan kaldırılmış ve yerine awaitEachGesture() getirilmiştir. (Iffc3f, b/251260206)
  • Animasyonun ilerleme durumunu belirlemek ve animasyon tamamlandıktan sonra IME'nin nerede olacağını bilmek için WindowInsets.imeAnimationSource ve WindowInsets.imeAnimationTarget eklendi. (I356f1, b/217770337)

Sürüm 1.3

Sürüm 1.3.1

9 Kasım 2022

androidx.compose.foundation:foundation:1.3.1 ve androidx.compose.foundation:foundation-layout:1.3.1 yayınlandı. 1.3.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • BeyondBoundsLayout hesabındaki performans sorununu düzeltin (aosp/2255266)
  • ContentInViewModifier, ekli olmadığı sürece düzen koordinatlarını okumaz (aosp/2241316)

Sürüm 1.3.0

24 Ekim 2022

androidx.compose.foundation:foundation:1.3.0 ve androidx.compose.foundation:foundation-layout:1.3.0 yayınlandı. 1.3.0 sürümü bu kayıtları içerir.

1.2.0'dan sonraki önemli değişiklikler

  • LazyVerticalStaggeredGrid ve LazyHorizontalStaggeredGrid öğelerinin deneysel sürümleri kullanıma sunuldu.
  • SnapFlingBehavior, rememberSnapFlingBehavior ve karşılık gelen diğer API'ler deneysel olarak eklendi.
  • Modifier.clickable, Modifier.toggleable ve Modifier.selectable artık uzaktan kumandadaki klavye veya d-pad ile tıklandıklarında dalgalar 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 kayıtları içerir.

API Değişiklikleri

  • Değer kaybının yeterli olduğu hızla akma hızı olmadığında, yaklaşım adımında kullanılan lowVelocityAnimationSpec eklendi. (Iaeb27)
  • Metinde otomatik kısa çizgiyi desteklemek için yeni deneysel API Kısa Çizgileri 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 kayıtları içerir.

API Değişiklikleri

  • Metin'de satır sonunu özelleştirmek için seçenekler ekleyin. (I86907)
  • BringIntoViewResponder artık bir isteği işlerken isteğin en güncel sınırlarını alabiliyor. (If86a5, b/241591211)
  • Deneysel Staggered Grid ile öğeler arasındaki boşluk desteği eklendi (I10b82)
  • Deneme amaçlı Staggered Grid ürününe (I342ea) içerik dolgusu ekleyin
  • Minimum genişlik kısıtlamalarını desteklemek için TextMeasurer.measure yönteminde constraints: Constraints içeren size:IntSize bağımsız değişkeni değiştirildi. (I37530, b/242707525)
  • WindowInsets, windowInsetsPadding dışında kullanılmak üzere Modifier.withConsumedWindowInsets() eklendi.
  • WindowInsets öğesinin, yeniden düzenleme yapılmadan kolayca değiştirilmesine 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 kayıtları içerir.

API Değişiklikleri

  • Deneysel StaggeredGrid sürümünün ilk sürümü (Ia48be)
  • FocusDirection.In ve FocusDirection.Out, FocusDirection.Enter ve FocusDirection.Exit olarak yeniden adlandırıldı (Ia4262, b/183746982)
  • LazyLists'da tutturmayı etkinleştirmek için hızlı bir yol sağlayan rememberSnapFlingBehavior aşırı yüklemesi kullanıma sunuldu. (Ifb48a)
  • snapFlingBehavior fabrikası, beton SnapFlingBehavior sınıfıyla değiştirildi. SnapLayoutInfoProvider yöntemleri, API kullanıcıları için Dp<->Px dönüşümlerini kolaylaştırmak amacıyla Yoğunluk kapsamına alındı. (I54a11)
  • Döndürülen değerde istenen sabitliği vurgulayarak yerleştirilebilirlerin listesini döndürmek için LazyLayoutMeasureScope.measure öğesini güncelleyin. (I48b7c)
  • LazyLists için bir tutturma FlingBehavior özelliğini etkinleştirmek üzere kullanılabilecek bir SnapLayoutInfoProvider örneği oluşturmak için LazyListState gerektiren SnapLayoutInfoProvider kullanıma sunuldu. (I2dd10)

Hata Düzeltmeleri

  • AwaitPointerEventScope#awaitLongPressOrCancellation öğesini, diğer bekleme işlevleriyle eşleşecek şekilde yeniden düzenler (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 kayıtları içerir.

API Değişiklikleri

  • OverscrollEffect öğesinden pointerPosition kaldırıldı. İşaretçi konumunu önemseyen efektler, geçerli işaretçi konumunu almak için effectModifier içinde Modifier.pointerInput { } kullanabilir. (I9f606, b/241239306)
  • AwaitPointerEventScope#awaitLongPressOrCancellation, daha karmaşık hareket algılama için ek yapı taşı olarak gösterildi (I04374, b/181577176)
  • Geç listelerde tutturmayı etkinleştirmek için lazyListSnapLayoutInfoProvider kullanıma sunuldu. (I3ecdf)
  • Liste tutturmayı etkinleştiren bir hızla kaydırma davranışı olan SnapFlingBehavior kullanıma sunuldu. Yapışma düzeninizle ilgili bilgileri içeren bir SnapLayoutInfoProvider örneği sağlayın. (Ie754c)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.foundation:foundation:1.3.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha03 yayınlandı. Sürüm 1.3.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • Kaynak Yazı Tipleri artık yazı tipi varyasyonu ayarlarının belirlenmesini destekliyor (API 26+). (I900dd, b/143703328)
  • DeviceFontFamilyNameFont ürününde değişken yazı tipi desteği (Ic1279, b/143703328)
  • PlatformTextStyle ve LineHeightStyle adlı uygulamalardan deneysel ek açıklama kaldırıldı. (I64bef)
  • VisualTransformation tarafından sağlanan OffsetMapping geçersiz dizinler döndürdüğünde, metin alanları artık daha ayrıntılı istisnalar oluşturacaktır. (Ie73f9, b/229378536)
  • Lazy düzenler arasında öğe sağlayıcı mantığını paylaşmak için deneysel API'leri kullanıma sunun. (Ic891c)
  • ScrollableDefaults.reverseDirection() artık deneme aşamasında değil. (Iba646)
  • SemanticsModifier.id kullanımdan kaldırıldı ve semantik kimliği LayoutInfo.semanticsId konumuna taşındı. (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. Bunun yerine lütfen uygulama kodunda SoftwareKeyboardController, IME yönetim kodunda ise TextInputSession kullanın. (I14e4c, b/183448615)

Sürüm 1.3.0-alpha02

27 Temmuz 2022

androidx.compose.foundation:foundation:1.3.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha02 yayınlandı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Odaklanma sırasında bir metin alanı devre dışı bırakıldığında sanal klavye artık gizlenir. (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ın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (Icea9d, b/216582726, b/223440806, b/227709803)
  • Kaydırılabilir bir öğe, odaklanmış bir alt öğeye sahip olduğunda, boyut animasyonlu olsa bile, boyutu küçültüldüğünde odaklanılan alt öğeyi görünümde tutmak için doğru şekilde kaydırılır. (I80867, b/230756508, b/220119990)
  • Seçim etkinken TextField değerinin temizlenip yeniden doldurulmasına neden olan bir 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ı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • AnnotatedString ürünlerinde TalkBack bağlantı desteğini desteklemek için UrlAnnotation ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)

Hata Düzeltmeleri

  • BasicTextField cursorBrush artık imleç zamanlayıcı 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 kayıtları 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 kayıtları içerir.

1.1.0'dan sonraki önemli değişiklikler

  • LazyVerticalGrid ve LazyHorizontalGrid şu anda kararlı.
  • Artık geç listeler ve ızgaralardaki öğeler için içerik türü belirtebilirsiniz. Bu, bileşenlerin öğeleri daha verimli bir şekilde yeniden kullanmasına olanak tanır.
  • Geç listeler ve ızgaralarda artık kullanıcı hareketleri aracılığıyla kaydırmanın devre dışı bırakılmasına olanak tanıyan userScrollEnabled parametresi bulunuyor.
  • LazyLayout adında yeni bir deneysel API eklendi. Bu, geç listeleri ve ızgaraları desteklemek için dahili olarak kullandığımız API'dir.
  • OverscrollEffect API, deneysel olarak kullanıma sunulmuştur. Özel fazla kaydırma efektleri tanımlayabileceğiniz gibi özel kaydırılabilir kapsayıcılara standart bir platform da ekleyebilirsiniz.
  • Görünümler ve kaydırma unsurları arasında birlikte çalışabilirlik sağlamak için iç içe kaydırma birlikte çalışabilirlik API'leri kullanıma sunulmuştur.
  • Tüm kaydırma kapsayıcılarına fare ve izleme yüzeyi kaydırma özelliği eklendi.

Sürüm 1.2.0-rc03

29 Haziran 2022

androidx.compose.foundation:foundation:1.2.0-rc03 ve androidx.compose.foundation:foundation-layout:1.2.0-rc03 yayınlandı. 1.2.0-rc03 sürümü bu kayıtları içerir.

  • 1.2.0-rc02 sürümünden beri 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 kayıtları 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 kayıtları içerir.

API Değişiklikleri

  • Özel fazla kaydırma efektlerinin yanı sıra bunu kabul eden Modifier.scrollable aşırı yüklemeye izin veren deneysel bir OverscrollEffect kullanıma sunulmuştur.
  • Deneysel LocalOverScrollConfiguration, foundation.gesture paketinden temel paketine taşındı ve LocalOverscrollConfiguration olarak yeniden adlandırıldı (If19fb, b/204650733)
  • Oluşturma kitaplıkları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ştirdiğimizden emin olmamızı sağlayan deneysel bir API checkScrollableContainerConstraints() kullanıma sunuldu. LazyLayout aracılığıyla kendi kaydırılabilir geç düzenlerinizi oluştururken bu özelliği kullanabilirsiniz. (Id6fab, b/233352497)
  • Kullanımdan kaldırılan LazyVerticalGrid, androidx.compose.foundation.lazy paketinden kaldırıldı. Yeni kararlı API, androidx.compose.foundation.lazy.grid konumunda (I73c76, b/225192009) bulunmaktadı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 kayıtları içerir.

API Değişiklikleri

  • Yeni deneysel IntervalList ve MutableIntervalList eklendi. Bazı değerler listesinin birden çok aralıkla temsil edilmesine olanak tanır. Bu özellik, LazyColumn tarafından kullanılana benzer kendi dsl'nizi tanımlamak istediğinizde faydalı olur. Burada liste öğeleri birden çok öğe/öğe çağrısı yoluyla tanımlanabilir. (I2d05e, b/228580728)

Hata Düzeltmeleri

  • ime ekin API 23'e kadar raporlandığını, ancak yalnızca 30+ sürümler için animasyonlu olduğunu belirtmek üzere WindowInsets.ime dokümanlarına açıklık getirildi. (Ia7fc0, b/230756508)
  • İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand artık kurucu bağımsız değişkenlerinin negatif olmayan olmasını gerektiriyor. (Ica8e6, b/199919707)

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.foundation:foundation:1.2.0-beta02 ve androidx.compose.foundation:foundation-layout:1.2.0-beta02 yayınlandı. 1.2.0-beta02 sürümü bu kayıtları içerir.

  • Metin'in veya TextField öğesinin düzen boyutunu değiştirmeyen, daha önce yeniden çizilmez ve eski yazı tipi görüntüsüne neden olan indirilebilir yazı tipi çözünürlüğü. Bu hata düzeltmesi, metin düzeninin her zaman yeniden çizimi 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 kayıtları içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Öğeleri görünür sınırların dışına yerleştirdiklerinde LazyList özel uygulamaları tarafından kullanılabilecek deneme amaçlı 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 öğesinden 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)
  • composable lambda'yı dizine göre döndüren bir fabrika yerine LazyLayoutItemProvider API'de artık dizini kabul eden daha basit bir composable işlev öğesi var. (Id2196)
  • LazyLayoutItemsProvider, LazyLayoutItemProvider (I0638c) olarak yeniden adlandırıldı
  • LazyLayoutItemsProvider.itemsCount, itemCount (Id409c) olarak yeniden adlandırıldı
  • Gradyan renklerle metin çizebileceğiniz bir yöntem sağlamak için TextStyle ve SpanStyle öğelerine Fırça eklendi. (I53869, b/187839528)
  • trimFirstLineTop, LineHeightBehavior öğesinin trimLastLineBottom özelliği tek bir numaralandırmaya dönüştürüldü: LineHeightTrim. LineHeightTrim, iki boole ile tanımlanan 4 durum değerine sahiptir: FirstLineTop, LastLineBottom, Her ikisi ve Yok (Ifc6a5, b/181155707)
  • TextStyle öğelerine LineHeightBehavior eklendi ve ParagraphStyle. LineHeightBehavior, satır yüksekliğinin ilk satırın üstüne ve son satırın altına uygulanıp uygulanmayacağını kontrol eder. Ayrıca, TextStyle(lineHeight) tarafından sağlanan alandaki çizginin hizalamasını da tanımlar.

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

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

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

Hata Düzeltmeleri

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

Harici Katkı

  • MouseInjectionScope.scroll(delta = someDelta), Android'de artık dikey olarak kaydırırsak ters çevrilmiş oluyor (someDelta pozitifse aşağı kaydırır) (Ifb697, b/224992993)

Sürüm 1.2.0-alpha08

20 Nisan 2022

androidx.compose.foundation:foundation:1.2.0-alpha08 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha08 yayınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.

API Değişiklikleri

  • FontFamily.SansSerif özelliğini kullanırken Android'de sistem yazı tipleri için mevcut tüm ağırlıkları görüntüleyin. API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adları kullanılır. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları desteklendiğinden bu bir davranış değişikliğidir. (I380fe, b/156048036, b/226441992)
  • Paragraf ve Çoklu Paragraf artık Kısıtlamalar parametresini kabul ediyor. Constraints.maxHeight öğesini geçirmek şu anda bir işlem değildir ancak ileride yüksekliğe göre elipsleme gibi bazı hesaplamalar yapılabilir. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() artık yeni öğe eklemeye izin vermeyen özel MutableSet benzeri özel sınıfı kabul ediyor. (Icd314)
  • Kısmi tüketim (düşüş VEYA konum) PointerInputChange içinde kullanımdan kaldırıldı. Değişiklikten tamamen yararlanmak için consume() öğesini kullanabilirsiniz. Başka birinin değişikliği daha önce kullanıp kullanmadığını belirlemek için isConsumed kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturuyor. Bu, kopyalardan biri tüketildiğinde PointerInputChange kopyalarının kullanılacağı 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 sunuldu. Bu sayede LazyColumn/LazyVerticalGrid gibi kendi bileşenlerinizi derleyebilirsiniz. API'nin başlangıç aşamasında olduğunu ve gelecekteki sürümlerde değiştirilebileceğini unutmayın. (Iba2bc, b/166591700)
  • AndroidFont artık typefaceLoader parametresini kurucu parametresi olarak kabul ediyor. (I2c971)
  • WindowInsets tamamlayıcısı artık görünürlüğü (pencereyle kesişip kesişmediklerinden bağımsız olarak ekranda olup olmamaları) ve cihazda varsa ancak o anda etkin değillerse olabilecekleri boyutu 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ı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.

API Değişiklikleri

  • Geç düzenlerin alt öğelerinin, halihazırda oluşturulmuş olan öğelerin atılmasını önlemesine olanak tanıyan bir PinnableParent API'si eklendi (Ibbdd0, b/184670295)
  • LazyListLayoutInfo ve LazyGridLayoutInfo artık beforeContentPadding ve afterContentPadding alanlarına sahip (I3b628, b/200920410)
  • IME'ye özellikle ondalık ayırıcı eklemek için Keyboard.Number yerine alternatif olarak KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • İsteğe bağlı olarak, yazı tipi yedek zincirleri sırasında sistem tarafından yüklenen yazı tiplerini aramak için yeni yazı tipi açıklayıcısı Font(DeviceFontFamilyName) ekleyin. (I30468, b/219754572)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'lerdir (I574c5, b/225669674)
  • TextStyle/ParagraphStyle. includeFontPadding alan adında includeFontPadding için eklenen geçici uyumluluk yapılandırması TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) aracılığıyla değiştirilebilir. Bu, taşımayı etkinleştirmek için kullanılan geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808)
  • FontFamily.Resolver, sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için güncellendi (I6c1e7)
  • ComposeView öğesinin consumeWindowInsets uzantı özelliği, geliştiricilerin Android WindowInsets kullanımını devre dışı bırakmasına olanak tanır. Böylece, birbirine müdahale etmeden her birinin WindowInsets uygulamasına hiyerarşide ayrı ComposeViews erişimi sağlanır. (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ı. Sürüm 1.2.0-alpha06 bu kayıtları içerir.

API Değişiklikleri

  • Odaklanabilir hedefe odaklanma isteği için RequestFocus semantik işlemi eklendi. (I17b71)
  • FocusOrder artık FocusProperties olarak birleştirildi ve focusProperties() artık focusOrder() uygulamasının tüm özelliklerine sahip. FocusOrder ve focusOrder() desteği sonlandırıldı. focusRequester kabul eden focusOrder(), focusProperties() ile birlikte focusRequester() değiştiriciyle değiştirilmelidir. Bu, değiştiricilerin endişeleri daha iyi ayırmasını sağlar. (I601b7)
  • Geliştiricilerin, bileşimde olmalarına gerek kalmadan dönüşümü yapabilmeleri için WindowInsets.asPaddingValues(Density) eklendi. (I94c35)
  • Geçerli düzen yönü RTL olduğunda VectorPainter öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çekilebilirlerinin ayrıştırılması güncellendi. (I79cd9, b/185760237)

Hata Düzeltmeleri

  • Kaydırma alanı yeniden boyutlandırıldıysa ve odaklanılan composable daha önce görünür durumdaysa,kaydırma değiştiricileri (Modifier.verticalScroll(), Modifier.horizontalScroll() ve Modifier.scrollable()) artık odaklanmış composable'ı görünür durumda tutmak için kaydırılacak.
  • Metin alanları artık odaklanıldığında ve klavye gösterildiğinde, tembel olmayan kaydırılabilir bir modda ve yumuşak giriş modu ADJUST_RESIZE olduğunda klavyenin üzerinde tutulacak. (I4a485, b/190539358, b/192043120, b/216842427)

Sürüm 1.2.0-alpha05

9 Mart 2022

androidx.compose.foundation:foundation:1.2.0-alpha05 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha05 yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

  • LazyVerticalGrid ve LazyHorizontalGrid kararlı durumda. (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 olan içe aktarma işlemlerinizi androidx.compose.foundation.lazy.grid olarak güncelleyin. (I2d446, b/219942574)
  • Metin: includeFontPadding artık varsayılan olarak kapalı. includeFontPadding=false sonucunda ortaya çıkan kırpma sorunları işlenir ve uzun komut dosyaları için kırpma işlemi yapılmaz. (I31c84, b/171394808)
  • Ölçülen arayüz artık parentData özelliğini (I3313f) gösteriyor
  • Alt öğelere odaklanılan öğelerin sınırlarını gözlemlemeye olanak tanımak için deneysel Modifier.onFocusedBoundsChanged kullanıma sunuldu. (I14283, b/220030968, b/190539358, b/192043120, b/216842427)
  • LazyHorizontalGrid eklendi. (I61ae7, b/191238807)
  • Çapraz eksen boyutlarını tanımlamak için yeni bir LazyVerticalGrid API'si eklendi (I17723)
  • FocusGroup değiştiricisi eklendi (I64bc0, b/213508274, b/184670295)

Hata Düzeltmeleri

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

Harici Katkı

  • Kotlinx eş 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ı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • BringIntoViewResponders artık istekleri üst katılımcılara manuel olarak iletmek için gerekli değildir. Bunun yerine, üst katılımcıların görüntülemesini istediği dikdörtgeni hemen döndürmesi gerekir. (I8e66a)
  • Metin olarak eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
  • LazyVerticalGrid, artık kapsamı geçerli satıra sığmayan öğelerden önce line breaking özelliğini destekliyor. (I05c40, b/207462103)
  • excludeFromSystemGestures adlı odanın adı systemGesturesExclusion (I19526) olarak değiştirildi
  • LazyVerticalGrid artık tersLayout'u destekliyor. (I6d7d7, b/215572963, b/211753558)
  • Geliştiricilerin yalnızca WindowInsets'teki boyutları dahil etmelerine izin vermek için WindowInsets.only() yöntemini ekleyin. (I14c94, b/217768486)
  • Bir composable işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleyen çağrıldığında derleme zamanı raporlamasını sağlayan ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget eklendi.

    Çoğu durumda ek açıklamalar, oluşturucu derleyici eklentisi tarafından tahmin edilebilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadir bir durumdur. Çıkarım yapılamayan durumlar arasında özel uygulayıcı, soyut composable işlevleri (arayüz yöntemleri gibi), alanlar veya composable lambda olan genel değişkenler (yerel değişkenler ve parametreler çıkarım yapılır) oluşturup kullanmak veya ComposeNode ya da ilgili composable işlevleri kullanmak yer alır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran composable işlevlerin, işlev ve tümcomposable lambda parametre türleri için CompoableTarget ek açıklaması eklemesi gerekir. Bununla birlikte, ComposableTargetMarker ek açıklaması içeren bir ek açıklama oluşturmanız ve daha sonra, işaretli ek açıklamanın doğrudan ComposableTarget yerine kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir composable ek açıklama, applier parametresi olarak özellik sınıfının tam adına sahip ComposbleTarget özelliğine eşdeğerdir. ComposableTargetMarker kullanımına ilişkin örnek için anroidx.compose.ui.UiComposable sayfasını inceleyin. (I38f11)

Hata Düzeltmeleri

  • Artık negatif kaydırma ofsetlerinin LazyGridState.scrollToItem() ve LazyGridState.animateScrollToItem() içine geçirilmesine izin veriliyor. (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ı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • TextInputSession ve TextInputService uygulamalarındaki 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)
  • Animasyonlar, Modifier.animateItemplacement() öğesini içeren geç ızgara öğeleri için etkinleştirildi. (Ib6621, b/211753218)
  • BringIntoViewRequester artık istekleri barındıran Android View'a yayar. (Ia7a51)
  • FontFamilyResolver artık LocalFontFamilyResolver.current
      üzerinden kullanılabilir
    • Oluşturma kullanımının dışında yeni FontFamily çözümleyiciler oluşturmak için createFontFamilyResolver(context) ve createFontFamilyResolver(context, coroutineScope) eklendi.
    • Artık Paragraf ve MultiParagraf, FontFamily.Resolver kullanıyor
    • TextLayoutResult.layoutInput.fontFamilyResolver artık bu düzen için kullanılan çözümleyiciyi içeriyor. TextLayoutResult.layoutInput.resourceLoader artık kullanılmadığı için kullanımdan kaldırıldı. (Id5a45, b/174162090)
  • Android'de yeni türlerde yazı tipi kaynağı tanımlayıcıları sağlayan alt düzey yeni bir API olan AndroidFont eklendi. Örneğin, uygulamaya özel bir arka uçtan yazı tipi yükleme, isteğe bağlı olarak cihazda önceden yüklenmiş yazı tiplerini bulma veya mevcut Yazı tipi fabrikaları tarafından sağlanmayan bir kaynaktan yazı tipi yükleme.
    • İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için Font.ResourceLoaded API genişletildi. Uygulama geliştiricilerin doğrudan bu API'yi kullanmaları önerilmez. Yeni yazı tipi türleri eklemek için AndroidFont'a bakın.
    • Font.AndroidResourceLoader uzantı işlevi, kompozisyonun dışındayken bir Font.ResourceLoader oluşturulmasına izin verir.
    • Kaynak yazı tipi, indirilebilir yazı tipleri XML'ine başvurduğunda eşzamansız yüklemeye izin vermek için kaynak tabanlı yazı tiplerine loadingStrategy parametresi eklendi. (Ie5aea, b/174162090)
  • Typeface(FontFamily) oluşturucu kullanımdan kaldırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. İndirilebilir yazı tiplerinde bu çağrı 10 saniye süreyle engellenebilir. Bunun yerine FontFamilyResolver.preload kullanın
    • fontResource(FontFamily): Typeface desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. Bunun yerine FontFamilyResolver.preload kullanın (If8e7c, b/174162090)
  • Artık LazyVerticalGrid öğelerinin içerik türünü belirtebilirsiniz - LazyGridScope üzerindeki öğe/öğe işlevleri artık bu tür parametreleri kabul etmektedir. Bu tür bilgilerin sağlanması, öğe bestesinin mantığı daha verimli bir şekilde kullanmasına ve içeriği yalnızca benzer türdeki öğeler arasında yeniden kullanmasına yardımcı olur. (I7b355, b/215372836)
  • LazyListLayoutInfo ve LazyGridLayoutInfo artık yeni mülklere sahip: viewportSize, orientation, reverseLayout (Ifc8ed, b/200920410)
  • Artık LazyColumn/LazyRow öğeleri için içerik türünü belirtebilirsiniz - LazyListScope'taki öğe/öğe işlevleri artık bu tür parametreleri kabul ediyor. Bu tür bilgilerin sağlanması, öğe bestesinin mantığı daha verimli bir şekilde kullanmasına ve içeriği yalnızca benzer türdeki öğeler arasında yeniden kullanmasına yardımcı olur. (I26506)
  • maxSlotsToRetainForReuse kabul eden SubcomposeLayoutState oluşturucunun desteği sonlandırıldı. Bunun yerine SubcomposeSlotReusePolicy özelliğini kabul eden yeni bir oluşturucu vardır. Bu yeni arayüz, hangi alanların gelecekte yeniden kullanılmak üzere saklanacağı konusunda daha ayrıntılı kontrole olanak tanıyan yeni bir arayüzdür. (I52c4d)
  • WindowInsets için hem dolgu hem de boyutlandırma için Değiştiriciler ekler. Bu, bazı içeriklerin içerideki alana uzanmasına, ancak yine de birincil içeriğin içe eklenen alanın dışında kalmasına izin verir. Örneğin, windowInsetsPadding, içerik alanını tamamen veya kısmen kaplanmış olabilecek alanlardan kaçınmak için doldurmak için kullanılabilir. (Id0395, b/213942085)

Hata Düzeltmeleri

  • Metin Alanları artık odaklanıldığında ve yumuşak giriş modu ADJUST_PAN olduğunda klavye gösterildiğinde klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120)
  • Masaüstü, FontFamily.Resolver için yerel bileşim kullanıyor
    • Masaüstü FontLoader desteği sonlandırıldı
    • Masaüstünde yeni createFontFamilyResolver fabrikası (I6bbbb, b/174162090)
  • Metin alanları arasında odak değiştirildiğinde, sanal klavye giriş türü artık titremiyor. (I1bf50, b/187746439)
  • İmleç tutamacı gösterilirken artık metin alanlarına tekrar basma zorunluluğu yoktur. (Ideb4b, b/205726883)
  • Metin seçimi büyüteci davranışı, platform büyüteciyle eşleşecek şekilde ayarlandı. (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ı. Sürüm 1.2.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • Karmaşık bir mantığa sahip olmayan mevcut yöntemlerin aşırı yüklendiği yöntemlere NonRestartableComposable eklendi. Bu, çağrılan iç fonksiyonda tekrarlanan tüm parametreler için derleyici tarafından oluşturulan not alma kontrollerini azaltır (eşittir). (I90490)
  • Android'in setSystemGestureExclusionRects uygulamasına kolay erişim için excludeFromSystemGesture Değiştiriciler eklendi (I46f07)

Hata Düzeltmeleri

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

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.foundation:foundation:1.2.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha01 yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Kullanıcıların, dokunma hareketleri veya erişilebilirlik işlemleriyle kullanıcı tarafından başlatılan kaydırma işlemini geçici ya da kalıcı olarak devre dışı bırakmasına olanak tanımak için LazyColumn, LazyRow ve LazyVerticalGrid öğelerine yeni userScrollEnabled parametresi eklendi. Durumdaki yöntemler aracılığıyla programatik olarak kaydırmaya izin verilmeye devam edilecektir. (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çindeki seçim tutma yerlerini sürüklerken gösteriliyor. (I30b38, b/139320979)

Hata Düzeltmeleri

  • Görünümün dışına kaydırıldığında TextField imleç tutamacının gizlenememesi sorununu düzeltir. (I14552, b/208883748)

Bağımlılık Güncellemeleri

  • Artık Kotlin 1.6.10 hizmetini kullanabilirsiniz.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

androidx.compose.foundation:foundation:1.1.1 ve androidx.compose.foundation:foundation-layout:1.1.1 yayınlandı. 1.1.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList adresindeki NullPointerException sorununu düzeltin (aosp/1947059, b/206677462)
  • Android'de panodan okuma sırasında pano içeriğinin neden kilitlenmesi düzeltildi. (I06020, b/197769306)
  • LazyVerticalGrid içinde sabit RTL (aosp/1931080, b/207510535)

Sürüm 1.1.0

9 Şubat 2022

androidx.compose.foundation:foundation:1.1.0 ve androidx.compose.foundation:foundation-layout:1.1.0 yayınlandı. 1.1.0 sürümü bu kayıtları içerir.

1.0.0'dan sonraki önemli değişiklikler

  • Android 12 Fazla kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmasıyla ilgili iyileştirmeler
  • Compose 1.0'da Material bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılayacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olarak ayarlasanız bile Düğme dokunma hedefi minimum 48x48 dp boyuta genişler. Bu işlem, Compose Materyalini Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ve Oluşturma öğelerini birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
  • Navigasyon Rail için kararlı destek
  • Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir
  • Kotlin'in yeni sürümleri için destek

Sürüm 1.1.0-rc03

26 Ocak 2022

androidx.compose.foundation:foundation:1.1.0-rc03 ve androidx.compose.foundation:foundation-layout:1.1.0-rc03 yayınlandı. 1.1.0-rc03 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Compose Material 1.1.0-rc03 sürümünü 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 kayıtları içerir.

Hata Düzeltmeleri

  • Artık negatif kaydırma ofsetlerinin LazyListState.scrollToItem() ve LazyListState.animateScrollToItem() içine geçirilmesine izin veriliyor. (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 kayıtları içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi

API Değişiklikleri

  • androidx.core.view içindeki boş değer temizlendi(I7078a, b/204917439)
  • PointerInputchange'in bir bütün olarak kullanılmasına veya tüketilip tüketilmediğini kontrol edilmesine olanak tanıyan deneysel API'lar eklendi. (I2e59d)
  • Metin alanlarının içinde imleci veya seçim tutma yerlerini sürüklerken büyüteç widget'ı gösterin. (I5391e, b/203781358)

Hata Düzeltmeleri

  • IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerlerini düzeltin. (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 kayıtları içerir.

API Değişiklikleri

  • LazyVerticalGrid'e yatay aralık desteği eklendi. (I7e2fa, b/176758183)
  • Geç listeler öğe konumlarına animasyon ekleme deneysel özelliği eklendi. LazyItemScope içinde Modifier.animateItemPlacement() adlı yeni bir değiştirici var. 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, animasyonların yeniden sıralanmasını etkinleştirir. Öğenin 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şikliklerine de animasyon eklenir. (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 kayıtları içerir.

Hata Düzeltmeleri

  • Dalgalar ve diğer göstergeler artık yalnızca bir Modifier.scrollable() kapsayıcısının içinde olduğunda gecikecek ve düşüş etkinliği için her zaman ertelenecektir. (Ibefe0, b/203141462)
  • Ebeveynlere, bir öğeyi görünüme getirmek için kaydırma isteği göndermenizi sağlayan deneysel BringIntoView API eklendi (Ib918d, b/195353459)

Harici Katkı

  • Eklenen Modifier.pointerHoverIcon (I95f01)

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.foundation:foundation:1.1.0-beta01 ve androidx.compose.foundation:foundation-layout:1.1.0-beta01 yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Ebeveynlere, bir öğeyi görünüme getirmek için kaydırma isteği göndermenizi sağlayan 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 kayıtları içerir.

API Değişiklikleri

  • Layout için iyileştirilmiş verimlilikle çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
  • SemanticsNodeInteraction.performSemanticsAction şimdi işlevin çağrıldığı SemanticsNodeInteraction değerini döndürüyor. (I9e5db)
  • Belirli bir eşleştirici ile eşleşen içeriğe kaydırılabilir bir kapsayıcıyı 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ı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • Kaydırılabilir öğeler (hem geç hem tembel olmayan) için kaydırma ile ilgili sabit erişilebilirlik desteği (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ı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • performTouchInput ve TouchInjectionScope ile değiştirilen performGesture ve GestureScope kullanımdan kaldırıldı. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin minimum erişilebilirlik değerlerini karşılamasını sağlayabilmek için SemanticsNode öğesine, minimum dokunma hedefi boyutunu içeren touchBoundsInRoot eklendi. (I2e14b, b/197751214)

Hata Düzeltmeleri

  • Android 12 cihazlarda esneme fazla kaydırma desteği eklendi. (Iccf3c, b/171682480)

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ı. Sürüm 1.1.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • 1.1.0-alpha03 oluşturma işlemi, Kotlin 1.5.30 biçimini temel alacak şekilde güncellendi. (I74545)

API Değişiklikleri

  • Kaydırma için parlaklık efekti eklendi. Fazla kaydırmalı görsel efektinin yapılandırılmasına olanak tanımak için yeni deneysel Over ScrollConfiguration API eklendi. Fazla kaydırma etkisini devre dışı bırakmak için null değerini girin. (I0c304, b/171682480)
  • AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() öğelerini içeriyor (I507f0, b/179239764, b/182397793)
  • Kesilen sınırları almak için test yöntemi eklendi. (I6b28e)
  • Erişilebilirlik sağlamak amacıyla anlambilimde ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.foundation:foundation:1.1.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha02 yayınlandı. Sürüm 1.1.0-alpha02 bu kayıtları 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ı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • İsteğe bağlı bir filterQuality parametresini kullanmak için kaynak ve hedef dikdörtgenlerini tüketen DrawScope#drawImage yöntemi güncellendi. Bu özellik, piksel tabanlı sanat için ölçeklendirildiğinde pikselleştirilmesi amaçlanan piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı birFilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)
  • TextField artık geri düğmesine basıldığında seçimi temizliyor. Bu, Android EditText davranışıyla eşleşiyor. (I3ca16, b/174173645)
  • İmleç tutamacı ekleyin. (I07a82, b/173016579)

Hata Düzeltmeleri

  • Geç listeler ve normal kaydırma bileşenleri için anlamsal işlemler 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 kayıtları içerir.

Hata Düzeltmeleri

  • türvedStateOf örneklerinin kilitlenmesini izlemeyle ilgili bir sorun 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 kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.31 temel alınarak 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 kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.30 temel alınarak 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 kayıtları içerir.

Compose 1.0.2 sürümünü desteklemek için güncellendi. 1.0.2 oluşturma işlemi, Kotlin 1.5.21 ile hâlâ uyumlu.

Sürüm 1.0.1

4 Ağustos 2021

androidx.compose.foundation:foundation:1.0.1 ve androidx.compose.foundation:foundation-layout:1.0.1 yayınlandı. 1.0.1 sürümü bu kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.21 temel alınarak 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 kayıtları içerir.

1.0.0'ın temel özellikleri

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Sürüm Oluşturma 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 şu kilitlenmeyle karşılaşabilirsiniz:

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

    Sorunu düzeltmek için build.gradle dosyanızda minSdkVersion değerini geçici olarak 24+ sürümüne yükseltin. Bu sorun, Android Studio Bumblebee ve AGP 7.1 sürümünün bir sonraki sürümünde düzeltilecektir. (b/194289155)

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.foundation:foundation:1.0.0-rc02 ve androidx.compose.foundation:foundation-layout:1.0.0-rc02 yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.

  • Sabit boyutlarla tanımlanmış yollardaki sorunları gidermek amacıyla genel şekillere ilişkin kenarlık oluşturma 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 kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Devre Dışı Bırakılan 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 kayıtları içerir.

API Değişiklikleri

  • ManualFrameClock kaldırıldı. Animasyonları kontrol etmeniz gerekirse bunun yerine composeTestRule.mainClock işlevini kullanın. (I3c3e8, b/189951065)
  • enum Rolü ve LiveRegionMode'u, özel oluşturucuya (Id1890) sahip satır içi sınıflarla değiştirin
  • Klavye büyük harf kullanımı satır içi sınıfa dönüştürüldü. (Id5a1c)
  • TextOverflow, satır içi sınıf olarak değiştirildi. (I433af)

Hata Düzeltmeleri

  • Artık LazyColumn/Row öğeleri için benzersiz anahtarlar belirttiğinizde, kaydırma konumu anahtara göre korunuyor. Diğer bir deyişle, geçerli görünür öğeden önce öğe ekler veya kaldırırsanız belirtilen anahtara sahip öğe ilk görünür öğe olarak tutulur. (Id263f, b/184257857)
  • Anahtar sabitleri şimdilik @DeneyselalComposeUiApi'dir. Kod tüketmek, sabitlemeden önce özel sabitleri bildirebilir. (Ia5d48)
  • Durağamayı beklemek veya sorunu çözmek için alternatif bir mekanizma yüklemek üzere test çerçeveleri tarafından kullanılabilecek IdlingStrategy AndroidComposeTestRule'a eklendi. Kendi stratejinizi yüklemek için testiniz başlamadan önce AndroidComposeTestRule.setIdlingStrategyFactory() kullanın. (I608fa)

Eklenmiş Profil Kuralları

Bu sürümde aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları eklenir:

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.temel
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-dalga
  • 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ığa ilişkin profil kuralları, src/main veya eşdeğer dizinde bulunan baseline-prof.txt metin dosyasında belirtilir. Dosya, satır başına bir kural belirtir. Bu örnekte, bir kural kitaplıktaki yöntemler veya sınıflarla eşleştirme kalıbıdır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan, kullanıcılar tarafından okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

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

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

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

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

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

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

Kurallar ne işe yarar?

  • H işaretine sahip bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini belirtir.

  • S işaretine sahip bir yöntem, bunun başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemi başlatma sırasında yorumlama maliyetinden kaçınmak için önceden derlenmesi gerektiğini belirtir.

  • P işaretine sahip bir yöntem, bunun başlatma sonrasında ç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 maliyetinden kaçınmak için yığında önceden ayrılması gerektiğini gösteriyor.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda, bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özel kompakt bir ikili program ART profili oluşturmak için kullanılır. Uygulama cihazlara yüklendiğinde ART, uygulamanın performansını özellikle ilk çalıştırmada iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla bu profilden yararlanabilir. Bu işlemin hata ayıklaması yapılabilir uygulamalar üzerinde etkisi olmayacağını 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 kayıtları içerir.

API Değişiklikleri

  • Nested ScrollSource enum'un yerine bir satır içi sınıf gelir. (Ie321b, b/187055290)
  • Yeni enum değerleri eklendiğinde kapsamlı ifadelerle ilgili sorunları önlemek için enum kullanımları satır içi sınıflarda yeniden düzenlendi. (I2b5eb)
  • Kaydırma / sürükleme sırasında dalga gösterilmesini engellemek için tıklanabilir / değiştirilebilir özelliğine dokunma zaman aşımı ekler (Ia2704, b/168524931)
  • ContentDescription ve Text semantics özellikleri artık tek değerler değil, listelerdir. Böylece birleştirme yapmak yerine, olduğu halde birleştirebilirsiniz. Ayrıca bu değişiklikleri kullanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
  • Modifier.focusModifier() desteği sonlandırılmış olup yerine Modifier.focusTarget() (I6c860) ile değiştirilmiştir
  • KlavyeType sıralaması bir satır içi sınıfla değiştirildi. (I73045, b/187055290)
  • FocusState sıralaması, FocusState arayüzüyle değiştirildi (Iccc1a, b/187055290)
  • ImeAction enum'un yerine bir satır içi sınıf getirildi. (I18be5, b/187055290)
  • AnnotatedString.withAnnotation işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi'dir. (I0cd0a)
    • TextUnitType içeren TextUnit oluşturucu, artık ExperimentalComposeApi yerine DeneyselalTextApi olmuştur.
  • PaddingValues artık @Immutable yerine @Stable (I88c50)

Hata Düzeltmeleri

  • Boş olmayan metinde boş alana uzun basmaktan kaynaklanan kilitlenmeler düzeltildi. (I33ab5, b/187437299)
  • SelectAll (Tümünü Seç) ifadesinden sonra Araç Çubuğunu göster (I495d9, b/185919613)
  • Çapraz eksende alt öğelerini kırpan kaydırılabilir kapsayıcılar için düzeltme yapıldı. Kart öğeleri içeren bir LazyRow ile kolayca yeniden oluşturulabiliyordu. Artık gölge kırpılmayacak. (Icb635, b/186318448)
  • Modifier.combinedClickable (I2298c, b / 186223077) kullanılırken dalgaların/diğer işaretlerin bazen uzun tıklamalarda takılması sorunu giderildi
  • Artık detectDragGesures, detectVerticalGestures ve detectHorizontalGestures konum değişikliğini otomatik olarak kullanacak; onDrag geri çağırmalarında change.consumePositionChange çağrılmasına gerek yoktur (I42fc4, b/185096350, b/187320697)
  • Modifier.onGloballyPositioned(), tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirmek için 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 kayıtları içerir.

API Değişiklikleri

Hata Düzeltmeleri

  • LazyColumn/Row artık, daha önce aşağı kaydırılmış olsalar bile önceden görünür olan en fazla 2 öğeyi etkin (atılmayan) tutacak. Bu, kaydırma performansını iyileştiren yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt kompozisyonları yeniden kullanmasına olanak verir. (Ie5555)
  • PaintArka planı kaldırın. (I38660)
  • DrawScope kullanarak seçim arka planı çiz. (I73c61, b/186674472)
  • Ağırlıklı alt öğeleri düzenlemek için SpacedBy düzenlemelerini kullanan Satır/Sütun'u etkileyen bir beta06 regresyonu düzeltildi. (Ifaf8c, b/187326588)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.foundation:foundation:1.0.0-beta06 ve androidx.compose.foundation:foundation-layout:1.0.0-beta06 yayınlandı. 1.0.0-beta06 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • weight(fill = false) içeren satır ve sütun alt öğeleri, artık üst öğeyi mevcut ana eksen 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 kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown erişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0)
  • ui-test-manifest veui-tooling-data içindeki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumlu.

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 kayıtları içerir.

API Değişiklikleri

  • SoftwarekeyboardController'daki hideYazılımKlavye ve showSoftwareKlavyesini sırasıyla hide() ve show() olarak yeniden adlandırın.
    • LocalYazılımKlavyeDenetleyicisi için tam CompositionLocal arayüzünü sağlayın. Bu arayüz, ayarlanmasına izin verin (özellikle testlerde kullanışlıdır) (I579a6)
  • TextOverflow.Visible kullanıma sunuldu. (Ic8f89)
  • RowScope, ColumnScope, BoxScope, BoxWithConstraintsScope adlı uygulamanın herkese açık örnekleri kaldırıldı. (I4e83e, b/181869067)

Hata Düzeltmeleri

  • Kenarlarda bulunan LazyColumn/LazyRow öğelerinin, hızlı kaydırmadan sonra yanlış konumlandırılmasıyla ilgili sorun düzeltildi (Ie4d13, b/183877420)
  • Bu değişiklikten önce, yerel composable işlevler parametrelerine göre atlanabilirdi. Bu değişiklikten sonra hiçbir yerel composable işlev atlanmayacak. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri yakalaması yaygın ve beklenen bir uygulama olduğu ve bunların atlanması yaygın bir hata kaynağı olduğu için yapılmaktadır.

    Özetlemek gerekirse:

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

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

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.foundation:foundation:1.0.0-beta03 ve androidx.compose.foundation:foundation-layout:1.0.0-beta03 yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • DefaultMonotonicFrameClock desteği sonlandırıldı. MonotonicFrameClock olmadan withFrameNanos veya Recomposer.runRecomposeAndApplyChanges araması, artık IllegalStateException bildirimine yol açacaktır. (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 kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımında kısıtlamalar uygula (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 kayıtları içerir.

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

API Değişiklikleri

  • onStart geri çağırma özelliği detectDragGestures grubuna eklendi (I67269, b/179995594)
  • Yerleşik özelliklere göre boyutlandırmayla ilgili değiştiriciler artık deneysel değildir. (I15744)
  • dp onaylamaları kaldırıldı (I798d2)
  • Kısa bir süre içinde yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma özelliği 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 kullanacak şekilde güncellendi veya basitleştirilmiştir. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi
    • Arayüzler, Etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
    • interactionState = remember { InteractionState() } öğesini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } işlevini kullanın.
    • Interaction.Pressed in interactionState yerine, EngagementSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmalısınız.
    • Karmaşık kullanım örneklerinde, Etkileşimlerin akışını gözlemlemek için EtkileşimKaynak.interactions'ı kullanabilirsiniz. Daha fazla bilgi için EngagementSource belgelerine ve örneklerine bakın.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı, locationInParent ve boundsInParent için özellik yerine işlevi kullanın (I580ed, b/169874631, b/175142755)
  • CoreTextField gibi alt düzey metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
  • Placeable, artık alt düzenin gerçekte ölçtüğü boyutu temsil eden measurementSize özelliğini gösterir. Bu boyut, ölçüm sınırlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
  • Erişilebilirlik amacıyla Sekme veya Radyo Düğmesi koleksiyonunu işaretlemeye olanak tanıyan seçim grubu değiştiricisi ekleyin (Ie5c29)
  • LazyListState.animateScrollToItem ekle

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

  • ScrollableState.smoothScrollBy(), CanındakitürültmeBy() (I35ded) olarak yeniden adlandırıldı. LazyListState.snapToItemIndex(), scrollToItem() olarak yeniden adlandırılmıştır KaydırmaState.smoothScrollTo(), canlananScrollTo() (I35ded) olarak yeniden adlandırıldı

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

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

    Bu değişiklik, varsayılan fabrikanın sağlanmadığı, boş değerli olmayan türler için olası tür hatasını ortadan kaldırır. Önceden bu, null yapılamayan bir tür için boş referans sağlıyordu.

    Boş değer atanabilen türler için varsayılan fabrika ayarı olarak { null } değerini sağlayın.

    Makul bir varsayılan sağlanmadığı sürece, null yapılamayan türlere sahip yerel halkın kullanılması önerilmez. Makul bir varsayılan yoksa defaultFactory lambda bir istisna atmalıdır. Bununla birlikte, istisna uygulamak yerel tüketicilerin, tür sistemi tarafından zorunlu kılınmayan, sağlanan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)

  • Indication#createIndication() parametresi Indication#rememberUpdatedIndication(InteractionState) olarak değiştirildi ve InteractionState parametresi IndicationInstance#drawIndication() öğesinden kaldırıldı. IndicationInstance, yalnızca görsel efektler çizmekten sorumlu olmalı ve EngagementState değişikliklerine yanıt olarak animasyonları başlatmamalıdır / yazma durumu oluşturmamalıdır. Bu animasyonlar ve durum yazmaları bunun yerine rememberUpdatedIndication() içinde gerçekleşmelidir. Modifier.indication öğesindeki 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 kaldırıldı (I15cdc, b/179664814)

  • Modifier.verticalKaydırma()/YAtayKaydırma() işlevindeki kaydırma konumu, artık Ints ile temsil edilir (I81298)

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

  • FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decays yerine askıya alma animasyonunun özelleştirilmesine izin veriliyor. (I02b86, b/175294473)

  • Boyut değiştiriciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)

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

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

  • işaretçi giriş sisteminden kısmi tüketim kaldırıldı. Kısmi tüketimin koordinasyonu için önerilen yöntem Modifier.nested Scroll'dur. (Ie9c9b)

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

  • AnimationClockObservable ve alt sınıflar kaldırıldı. Animasyonlu Kayan öğe kaldırıldı. (Icde52, b/177457083)

  • drawerState.open() vedrawerState.close() artık işlevleri askıya alıyor. HatırlanabilirCoroutineScope() çağrısı yaparak bestenin kapsamını alın (I16f60, b/175294473)

  • Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı

    • Beste oluşturucu artık anahtar parametresi kabul etmediğinden kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey mülke dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • ComposableLambdaN, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • SnapshotFlow işlevi androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Buna artık gerek yoktur.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
    • Composer.collectKeySourceBilgileri kaldırıldı. Buna artık gerek yoktur.
    • isjoinedKey, birbirine katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
    • Çeşitli üst düzey API'ler taşındı ve farklı dosyalar halinde yeniden düzenlendi. Kotlin’in dosya sınıfı semantiği nedeniyle bu, ikili uyumluluğu keser ancak kaynak uyumluluğunu keser. Bu nedenle çoğu kullanıcı için sorun teşkil etmeyecektir.
    • (I99b7d, b/177245490)
  • Modifier.scrollable yeniden düzenlendi. Şimdi ScrollableController sınıfının yerine Scrollable arayüzünü kullanır (I4f5a5, b/174485541, b/175294473)

  • Modifier.draggable artık basit bir lambda yerine DraggableState'i kabul eder. Öncekiyle aynı davranışı elde etmek için rememberDraggableState { delta -> } aracılığıyla durum oluşturabilirsiniz (Ica70f, b/175294473)

  • Yerleşik 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 kullanımdan kaldırılmış bazı API'ler silindi (Ice5da, b/178633932)

Hata Düzeltmeleri

  • TextField'te önceki SoftwarekeyboardController arayüzünün yerini almak üzere yeni LocalSoftwareKlavyeController 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 kayıtları içerir.

API Değişiklikleri

  • Modifier.pointerInput artık işaretçi girişi algılama eşinin yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek için tuşları hatırlamayı gerektiriyor. (I849cd)
  • Test güncellemesi: hasText(), metin alanında (Iab803) hem girişi hem de etiket/ipucu/yer tutucu metinleri kontrol eder
  • PaddingValues.absolute eklendi ve PaddingValues kabul eden API'lerde kullanılabilir. (Ia5f30)
  • onImeActionPerformed desteği sonlandırıldı. Bunun yerine Klavyeİşlemleri kullanın (If0bbd, b/179071523)
  • Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter'ın adı, BitmapPainter olarak, paralel VectorPainter olarak değiştirildi. (Iba381, b/174565889)
  • Alt dizenin artık bağımsız değişken olarak kullanıldığı daha iyi alt dize test API'leri (Icbe78)
  • Sonsuz animasyonlara uygulanacak bir InfiniteAnimationPolicy eş yordam bağlam öğesi kullanıma sunuldu. Varsayılan olarak, testlerin ComposeTestRule ile çalıştırıldığı durumlar dışında herhangi bir politika yüklenmez. (I50ec4, b/151940543)
  • Animatable.snapTo ve Animatable.stop artık askıya alma işlevleri (If4288) oldu
  • ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
  • Destructure ve copy() yöntemleri, nadiren kullanıldıkları çeşitli sınıflardan kaldırılmıştır. (I26702, b/178659281)
  • LazyColumn/LazyRow için özel anahtar desteği eklendi. Bu, yeniden sipariş edilen ürünleri daha akıllı bir şekilde ele almamıza olanak tanır. Dolayısıyla, öğeleri yeniden sıraladığınızda veya öğeyi ortadan kaldırdığınızda {} bloklarında sakladığınız durum, öğeyle birlikte taşınır.

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • Indication#createInstance, @Composable olarak değiştirildi ve LocalIndication, () -> Indication öğesini değil bir Göstergeyi 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, VektörResource ve loadVectorResource için destek sonlandırılmıştır. Bunun yerine PaintterResource kullanın. (I6b809)

  • Performansı korumak için ScrollAxisRange semantiği, artık doğrudan Kayan noktalı değerler yerine Kayan noktalı öğeleri döndüren lambda'ları almaktadır. (If4a35, b/178657186)

  • Erişilebilirlik için metin alanında düzenlenebilir giriş metnini işaretlemek amacıyla EditableText semantiği eklendi. Anlamı kontrol etmek için ilgili test yöntemleri de eklendi (I8e07a)

  • Modifier.clickable artık çift ve uzun tıklama desteği sunmuyor. Bu işlevselliğe ulaşmak için Modifier.combinedClickable'ı 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.dragMoveFilter kullanımdan kaldırıldı. Bunun yerine Modifier.pointerInput { detectDragGestures (...)} politikasını kullanın. Alternatif olarak, bir eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473)

  • Ambiyans, Ambiyans -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Eskiden AmbientFoo adı verilen ambiyanslar artık CompositionLocals olarak LocalFoo olarak adlandırılıyor. (I2d55d)

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

  • state { 0 } composable'ı kaldırdığımız ve artık remember { mutableStateOf(0) } gibi kullanımı teşvik ettiğimiz şekilde savedInstanceState { 0 } composable'ı da kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmanız gerekir. MutableState içinde kullanılan tür pakette depolanıyorsa otomatik olarak kaydedilip geri yüklenir. Daha önce bir özel koruyucu nesnesi iletirken şimdi stateSaver parametresine sahip Hatırlanabilirlik özelliğinin yeni bir aşırı yüklenmesini kullanmanız gerekir. Kullanım şöyle görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)

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

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

  • Animasyondaki oynatma süresi artık nanosaniyelere ayarlanmıyor (If776a)

  • @ComposableContract kullanımdan kaldırılarak yerine üç özel 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)

  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programları, artık performans üzerinde herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)

  • Yeniden toplayıcılar artık kapatılabilir. Kapalı yeniden düzenleyiciler, beste alt eş yordamları tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatma işlemiyle kontrast oluşturmak üzere iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)

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

  • HatırlatıcıInstanceState(), comeSaveable() 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ı. Herhangi birini anahtar olarak geçirebilmeniz için genel tür kaldırıldı. Deneysel ek açıklamaya artık ihtiyaç yoktur. (I0902e, b/174598702)

  • Saver, listSaver(), mapSaver(), autoSaver androidx.compose.runtime.savedinstancestate durumundan androidx.compose.runtime.saveable (I77fe6) konumuna taşındı

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

  • Kullanıcı arayüzü paketindeki uzun süredir desteği sonlandırılmış API'lerin çoğu silindi. (I2f2dc)

  • Composer:runtime-dispatch yapısı kullanımdan kaldırıldı. MonotonicFrameClock artık write:runtime'da, AndroidUiDispatcher ise Composer:ui'de bulunabilir. (Ib5c36)

  • RounderCornerShape, CutCornerShape ve CornerBasedShape ile ilgili parametreler, şeklin rtl yönünde otomatik yansıtmasını desteklemek için sol/sağ'dan başlangıç/bitiş olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için MutlakRounderCornerShape ve absoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)

  • canDrag, Modifier.scrollable'dan kaldırıldı. (Id66e7, b/175294473)

  • Compose derleyici eklentisinin hedeflediği API, beton sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüz artık "type" parametresi kullanmamaktadır.

    Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir. Ancak ikili programlara zarar veren bir değişikliktir. (I3b922, b/169406779)

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

  • Canlandırma Değeri/Kayan artık kullanımdan kaldırıldı. Lütfen bunun yerine Animasyonu kullanın. (I71345, b/177457083)

    • CoreText ve CoreTextField, herkese açık API'den kaldırıldı
    • Kullanımdan kaldırılan SelectionContainer aşırı yüklemesi (I99c19) kaldırıldı
  • Kullanımdan kaldırılan, askıya alınma olmayan kaydırma işlevlerini kaldırın Son sürümdeki değişikliklerle devam eden, askıya alınma olmayan 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. Eş ünite kapsamı,rememberCoroutineScope() işleviyle elde edilebilir. (I3d39c, b/178169563)

  • androidx.compose.foundation.layout.ConstraintLayout desteği sonlandırıldı ve yerine androidx.restrictiontlayout.compose.ConstraintLayout kullanıma sunuldu. androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01 için bir bağımlılık eklemeniz gerekir. (I87adc)

  • dokununhareket filtresi, çiftehafizasi hareketFiltresi, uzunBasın Hareket Filtresi ve basIndicaitonHareket Filtresi kullanımdan kaldırılmıştır. Bunun yerine, Detfier.clickable'ı ya da Modifier.pointerInput'u tespit etmek için Dokunma Hareketleri işleviyle kullanın. (I6baf9, b/175294473)

  • Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönlendirilen yavaş bir şekilde oluşturulmuş, pencere kapsamlı Recomposer'ları kullanıyor. Yeniden oluşturma ve withFrameNanos tabanlı animasyon onay işaretleri, ana makine Yaşam Döngüsü durdurulurken duraklatılır. (I38e11)

  • Recomposer.runningRecomposers artık süreçte devam eden beste durumunu gözlemlemek için küresel bir RecomposerInfo salt okunur StateFlow'u sunuyor. Artık kullanımdan kaldırılmış olan Recomposer.current() için 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ı. Sürüm 1.0.0-alpha11 bu kayıtları içerir.

API Değişiklikleri

  • Askıya alınma olmayan scrollBy öğesini kullanımdan kaldır, askıya alınma olmayan scrollTo öğesini kaldır

    Artık kaydırmayı kontrol etmek için askıya alma işlevlerini kullanmanızı ve kaydırmanın bitmesini beklemenizi öneririz. Bu geçiş kapsamında bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz ve/veya kaldırıyoruz. (Ie9ced)

  • Askıya alınmayan smooth scrollBy için desteği sonlandırın Artık kaydırmayı kontrol etmek için askıya alma işlevlerini kullanmanızı ve kaydırmanın bitmesini beklemenizi ö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'ye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetleriyle (I2ac4c) ilgili açıklama sağlamak için kullanılır

  • BasicTextField, "decorationBox" adlı yeni bir parametre aldı. Simge, yer tutucu, etiket ve metin alanına benzer süslemelerin eklenmesine ve bu alanın isabet hedef alanının genişletilmesine olanak tanır. (I16996)

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

  • FlingConfig'i kabul eden Animasyon Kayan.fling dosyası kaldırıldı. Lütfen bunun yerine Animatable.animateDecay askıya alma işlevini kullanın. (I4659b, b/177457083)

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

    • Satır İçiMetinİçeriği
    • Yerel Ayar Listesi
    • (I605c7)
  • Artık beste dışında tıklanabilir, geçiş yapılabilir ve seçilebilir olarak oluşturulabilir (I0a130, b/172938345, b/175294473)

  • ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturma/ölçme/çıkarmamız mümkün olduğundan, büyük bir kaydırma içeriğiniz olduğunda LazyColumn'u kullanmak, LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımını teşvik etmeye karar verdik. Kullanıcılar yine de geç davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.vertical ülkeler(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 bunları kullanıldıklarında 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)

  • Kullanımdan kaldırılan MutlakArrangement 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 ForestMinConstraints parametresi Box'a eklendi. Varsayılan değer, false (yanlış) değeridir. (I0125b, b/152613457)

Hata Düzeltmeleri

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

    • Büyük harfle başlayan fabrika işlevleri eklendi
    • Küçük ilk harfle kullanımdan kaldırılan önceki fabrika işlevleri
    • Yeni fabrika işlevleri, alt sınıflar yerine FontFamily döndürürken
    • Alt sınıfların kurucuları, yalnızca fabrika işlevleri aracılığıyla oluşturulabilecek şekilde gizlendi.
    • Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı
    • (I42aa7)
  • ComposeTestRule kapsamını genişleten ve ComposeTestRule öğesinden kaldırılmış olan setContent öğesini tanımlayan ComposeContentTestRule kullanıma sunuldu. ComposeTestRule döndüren ve sizin için Etkinlik başlatmayan bir fabrika yöntemi (createEmptyComposeRule()) eklendi. Testiniz sırasında Etkinliğinizi başlatmak istediğinizde, ör.ActivityScenario.launch kullanarak (I9d782, b/174472899) bunu kullanın.

  • canlandırmaAsState artık animasyonluFooAsState oldu. Burada Foo, animasyonlu değişkenin türüdür. Ör. Kayma, Dp, Offset vb. (Ie7e25)

  • Yoğunluk artık Düzenleme arayüzlerinin alıcı kapsamıdır. (I18aad)

  • TextFieldValue, AnnotatedString'i 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.

    • EditBuffer oluşturucu parametrelerinden initial kaldırıldı. (I326d5)
  • inverify ve engagementReference() işlevleri artık sırasıyla currentRecomposeScope ve remindersCompositionReference koduyla kullanımdan kaldırılmıştır. (I583a8)

  • AnnotatedString, kotlin.CharSequence değerinden genişletilecek şekilde değiştirildi. Bu nedenle, uzunluk ve alt Sekans artık örnek işlevleri oldu ve uzantı işlevleri kaldırıldı. (Iaf429)

  • Süre ve Çalışma Süresi, Uzun milisaniyelerle değiştirilir ve bu adım, bu sınıflardaki işaretçi girişinin bağımlılığını ortadan kaldırır. (Ia33b2, b/175142755, b/177420019)

  • ThankObserver, CompositionLifecycleObserver'ın yerini almıştır. CompositionLifecycleObserver için de destek sonlandırılmıştır.

    RememberObserver, CompositionLifecycleObserver yerine değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler kullanır. Yalnızca bir kez hatırlanan ve önerilen uygulama olmaya devam eden nesneler için mekanik olarak yeni API'ye geçiş yapılabilir. Bununla birlikte, bir referans bir bestede birden çok kez hatırlandıysa her bir referans için onRemembered çağrılır. Burada, onEnter yalnızca bir kez çağrılır. Nesne alt kompozisyonlarda kullanılmışsa onEnter birden çok kez çağrıldı (örneğin, WithConstraints ve Scaffold) tek onEnter çağrısı garantisini güvenilmez hale getiriyor ve RememberObserver için kaldırıldı.

    RememberObserver, RememberObserver örneğinin remember öğesine iletilen geri çağırmadan döndürülmesi durumunda çağrılan onAbandoned ifadesini ekler. Ancak bu işlev, bileşim durumunda hatırlanmaz ve bu nedenle, hiçbir zaman onRemembered çağrılmaz. Bu durum, beste tamamlanmadan önce bir istisnanın sonlandırılması veya bestenin artık güncel olmadığı ya da başka bir şekilde gerekli olmaması nedeniyle bestenin çıkarılması durumunda meydana gelebilir. Yukarıdaki tek referans önerisini izleyen RememberObserver örneğinin hem onForgotten hem de onAbandoned harici bir kaynağı izlemesi, kaynağa artık ihtiyaç duyulmadığını gösterir. Nesne, onRemembered çağrılırsa çağrılmayacağı için onAbandoned, başlatılan işleri veya onRemembered içinde ayrılan kaynakları izliyorsa yoksayılabilir. (I02c36)

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

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

    • Ek Açıklamalı Dize
    • Paragraf Stili
    • Aralık Stili
    • Metin Stili
    • Yazı TipiAğı
    • Metin Dekorasyonu
    • MetinGeometrikDönüşüm
    • Metin Dizini
    • MetinDüzeniSonuçları
    • MetinLayoutInput (Iaff99)
  • Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)

  • Global koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (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ş. (I2d898, b/177000821)

  • SemanticsPropertyRecipientr.hidden, invisibleToUser olarak yeniden adlandırıldı ve @DeneyselalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, progressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityKayState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, Yatay ScrollAxisRange olarak yeniden adlandırılmıştır. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırılır. (Id3148)

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

  • Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)

  • PointerInputData kaldırıldı ve tüm PointerInputData alanlarını vermek için PointerInputChange ile değiştirildi. Herkese açık API'lerde kullanılmadıkları için PointerInputEvent ve PointerInputEventData verilerini dahili hale getirdi. (Ifff97, b/175142755)

  • TextInputService.onStateUpdated, updateState (Id4853) olarak değiştirildi

  • DisplaySize, kaçınılması gerektiği için bu etiketi kaldırın. Genellikle, en azından onRoot() boyutunu veya pencere boyutunu kullanmak daha iyidir. (I62db4)

Sürüm 1.0.0-alfa10

13 Ocak 2021

androidx.compose.foundation:foundation:1.0.0-alpha10 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha10 yayınlandı. Sürüm 1.0.0-alpha10 bu kayıtları içerir.

API Değişiklikleri

  • ImeOptions ve KeyboardOptions artık bir veri sınıfı değil (I3c898, b/168684531)
  • VisualTransformation API Değişiklikleri
    • OffsetMap, OffsetMapping olarak yeniden adlandırıldı
    • OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı
    • PasswordTransformation artık veri sınıfı değil
    • OffsetMapping kendi dosyasına taşındı
    • (I0bdf3)
  • Editİşlemler API'sında Yapılan Değişiklikler
    • EditOperation'ın adı, EditCommand olarak değiştirildi
    • EditOperation somut uygulamaları için Komut son eki eklendi
    • EditCommand artık veri sınıfı değil
    • EditProcess.process işlevi, applyTo olarak yeniden adlandırıldı
    • InputEventListener, InputEventCallback olarak yeniden adlandırıldı
    • (I0a366)
  • Değiştirilmiş Hız, bileşen parçaları ve matematiksel işlemlere sahip olacak şekilde değiştirildi. (Ib0447)
  • @ExperimentalTesting, benzer deneysel API ek açıklamalarıyla tutarlı olacak şekilde @ExperimentalTestApi olarak yeniden adlandırıldı (Ia4502, b/171464963)
  • LazyColumn/LazyRow için deneysel stickyHeader yöntemi eklendi (I0a81d)
  • Color.useOrElse(), Color.takeOrElse() (Ifdcf5) olarak yeniden adlandırıldı
  • Kullanımdan Kaldırılmış TestUiDispatcher. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
  • Temel Strings.kt öğesine geçiş anahtarı ekleyin (I4a5b7, b/172366489)
  • NativeClass'ı UI modülüne taşıyıp dahili hale getirdim. Uygulamalarda NativeClass'ın güncellenen kullanımları, bunun yerine "is MyClass" kullanılacak şekilde eşittir. (I4f734)
  • FlowRow ve FlowColumn kullanımdan kaldırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
  • Modifier.focus() ve Modifier.focusRequester() işlevlerin desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() öğelerini kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
  • Seçim Yöneticisi'ne Seçilebilir güncellemelerin bildirilmesi için SelectionRegistrar.notifySelectableChange kullanıma sunuldu. (I6ff30, b/173215242)
  • fun Dp.isFinite(), val Dp.isFinite (I50e00) olarak değiştirildi
  • Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
  • Belirsiz sabit değeri olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)

Hata Düzeltmeleri

  • Animasyonları arasında karşılıklı dışlama sağlayan yeni eş yordam tabanlı API Animatable. Çok boyutlu azalma animasyonunu destekleyecek 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 T yerine State<T> döndüren animateAsState() ile değiştiriliyor. Geçersiz kılma kapsamı State değerinin okunduğu yere daraltılabileceği için bu daha iyi performans sağlar. (Ib179e)
  • Semantics rol API'sini ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak Rol ekleyin. Modifier.progressSemantics değiştirildi, böylece Kaydırma Çubuğu da kullanılabilir. (I216cd)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden (I87c57, b/173086397) 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ı. Sürüm 1.0.0-alpha09 bu kayıtları içerir.

API Değişiklikleri

  • Kaydırılabilir arayüz ekleyin

    Bu, ScrollState ve LazyListState'in ortak bir tür olarak ele alınmasına ve özel kaydırmanın her iki türe de uygulanmasına olanak tanır.

    Bu, aynı zamanda smoothScrollBy öğesini Kaydırılabilir üzerindeki bir uzantı işlevine taşır ve bu işlevden faydalanılır. (I2153b)

  • LazyVerticalGrid eklendi. (I17267, b/162213211)

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed" değerlerini kullanımdan kaldırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)

  • İşaretçi giriş API'lerinin askıya alınması için HandlePointerInputScope, AwaitPointerEventScope vehandlePointerInput() adı awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)

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

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

  • TextFields için EngagementState desteği eklendi. (I61d91)

  • LazyColumn/Row için TersLayout parametresi ekleyin. true öğe alttan yukarıya doğru oluşturulacak ve LazyListState.firstVisibleItemIndex == 0, ilk öğenin en altta yer alacağı anlamına gelir. (I552ae, b/166589935)

  • LazyColumn için verticalArrangement parametresi eklendi. LazyRow için YatayArrangement parametresi eklendi. Düzenleme, öğeler arasına boşluk eklememize ve minimum boyutun tamamını doldurmaya yetecek kadar öğemizin olmadığı durumlarda, öğelerin düzenini belirtmemize olanak tanır. (Icf79a, b/170394300)

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

  • ContentDrawScope, DrawScope'u içerecek şekilde ui-graphics modülüne taşındı. (Iee043, b/173832789)

Hata Düzeltmeleri

  • Ofset değiştiricilerindeki lambda'lar artık Kayma yerine IntOffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
  • Genel API'den SlotTable, SlotReader ve SlotWriter kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık oluşturma modülünün dahilindedirler.

    Kullanıcı arayüzü araçları API'sinin kompozisyon bilgilerini çıkarmak için kullanılması amacıyla CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak kullanıcı arayüzü araçları API'sinin yorumladığı ham bilgileri sağladığı için (I31a9c) kullanıcı arayüzü araçları API'sinin dışında kullanılması amaçlanmamıştır.

  • ShaderBrush, çizim ortamının bilgileri hazırlanırken gölgelendirici örneği oluşturmak için yeniden düzenlendi. Bu, özel DrawModifier uygulamalarını uygulamak zorunda kalmadan composable'ın tüm çizim sınırlarını kaplayan renk geçişlerini tanımlamak için yararlıdır.

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

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

  • Otomatik Doldurma API'si artık deneysel bir API olup etkinleştirilmesini gerektirir (I0a1ec)

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

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

  • SelectionRegistrar'da birkaç yeni işlev kullanılmaya başlandı ve ayrıca, onPositionChange adını NotificationPositionChange olarak değiştirdi. (Ifbaf7)

  • AndroidSahibi dahili (Ibcad0, b/170296980)

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

  • Applier arayüzü, ağaç oluşturmayı yukarıdan aşağı değil, aşağıdan yukarıya basitleştirecek şekilde değiştirildi.

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

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

    Uygulama geliştiricileri, düzenlediği ağaca düğüm ekleme işlemi için hangisinin daha iyi performans gösterdiğine bağlı olarak insertTopDown() veya insertBottomUp() seçeneklerini kullanır.

    LayoutNode ve View gibi bazı ağaçlar, aşağıdan yukarıya doğru inşa etmekte yukarıdan aşağıya doğru çok daha etkilidir. Bu değişiklikten önce, performans için aşağıdan yukarıya yapı gerektiren her uygulamaya kopyalanan, aşağıdan yukarıya doğru bir ekleme yığını gerekiyordu. Bu değişiklikle birlikte bir Applier, ağacı aşağıdan yukarıya oluşturmak için insertBottomUp() öğesini, yukarıdan aşağıya doğru derlemek için de insertTopDown() politikasını geçersiz kılar. (Icbdc2)

  • Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables'dan opak şekilde yüklenen Painter nesnelerini işlemek için boyaterResource API'si eklendi. Tüketiciler artık öğe türünü önceden belirlemek zorunda değil. Resim composable'larında veya boya değiştiricilerde kullanılacak bir Painter nesnesi edinmek için bu yöntemi çağırabilirler. (I2c703, b/173818471)

  • AnnotatedString öğesi oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Kullanımdan kaldırılan captiondString oluşturucu işlevi. (Idfe0b)

Sürüm 1.0.0-alpha08

2 Aralık 2020

androidx.compose.foundation:foundation:1.0.0-alpha08 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.

API Değişiklikleri

  • maxLines parametresi CoreTextField öğesinden kaldırıldı. Metin alanının yüksekliğini satır sayısıyla sınırlamak istiyorsanız bunun yerine BasicTextField işlevini kullanın. (Iec002)
  • await*TouchSlop() yöntemleri, aşağı işaretçiyi algılamayacak şekilde değiştirildi ve *OrCancellation olarak yeniden adlandırıldı. orientationLock parametresine duyulan ihtiyaç da kaldırıldı. (Ie96e1)
  • Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla, composable lambda parametresi adlandırma ve konumu için lint denetimi eklendi. Ayrıca, hata analizi ve yönlendirmelerine uygun şekilde, sonraki lambda'nın adı olarak children kullanan bazı API'leri content konumuna taşıdı. (Iec48e)
  • foundation:foundation-text api foundation:foundation konumuna taşındı. Paket yapısı aynı kaldı (Id3eb2)
  • Döndürme, yakınlaştırma ve kaydırmayı algılamaya yönelik yardımcılar da dahil olmak üzere yeni çok noktalı hareket algılayıcı. (Ic459d)
  • Yeni sürükleme hareketi algılayıcı, yön kilitleme de dahil olmak üzere işaretçi giriş API'sini askıya alıyor. (Icef25)
  • VectorAsset adı ImageVector olarak değiştirildi. Uyumluluk için ImageVector.Builder bağlantısına VectorAssetBuilder öğesinin typealias özelliği eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • Temel semantik özellikleri kullanıcı arayüzüne taşındı (I6f05c)
  • Eş yordam tabanlı kaydırma API'leri ekleyin:

    LazyListState.snapToItem ve LazyListState.smoothScrollBy öğesinin yanı sıra kaydırma denetimi için alt düzey API'leri ekler. Bu API'ler, dönmeden önce kaydırmanın bitmesini bekleyen kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)

  • BasicTextField, TextField ve OutlineTextField öğelerine bir singeLine parametresi eklendi. Metin alanını yatay olarak kaydırılabilir tek bir satıra dönüştürmek için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)

  • Yeni askıya alma işaretçisi girişi kullanılarak dokunma, iki kez dokunma, uzun basma ve basma bildirimi için hareket dedektörü eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmalarını kolaylaştıran birkaç yardımcı program da eklendi. (I00807)

  • Modifier.focusable'ın temele eklenmesi gerekiyor. Bir bileşene doğru anlam ve erişilebilirlikle 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'u kullanın. Modifier.drawBorder kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Modifier.gravity kaldırıldı. Bunun yerine Modifier.align'ı kullanın. Yığın kaldırıldı, bunun yerine Box'ı kullanın (I32c2b, b/172470874)

  • MutlakArrangement, Düzenleme.Mutlak olarak yeniden adlandırıldı. (If26f2)

Hata Düzeltmeleri

  • DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Kullanımdan kaldırılan API'lerden mevcut API'lere geçişe yardımcı olacak typealiases/helper yöntemlerini eklemek için DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
  • Değiştirme. (I0bd29, b/173834241)
  • <T>, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)
  • PointerInputData'nın çalışma süresi ve konum alanlarını boş değerli hale getirdi. (Id468a)
  • MaterialTheme, seçim tutma yerleri ve seçim arka planı için artık doğru renkleri ayarlıyor. Materyal dışı uygulamalar, seçim için kullanılan renkleri özelleştirmek için AmbientTextSelectionColors öğelerini manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
  • Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
  • OffPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık State yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
  • Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
  • TextInputService#onStateUpdated değerine (I3e8f5, b/172239032, b/171860947) resetInput parametresi eklendi
  • TextFieldValue API güncellendi
    • TextFieldValue.composition salt okunur yapıldı
    • geçersiz seçim aralığı için atılan istisna kaldırıldı (I4a675, b/172239032)
  • Kullanımdan kaldırılmış Ambiyanslar ve Compose API kurallarına uyarak son eki Ambient olan Ambiyans sonekleri, ön ekinde Ambiyans olan yeni özelliklerle değiştirildi. (I33440)
  • Android Yazı Tipi sarmalayıcı eklendi. Bir Android Yazı Tipini typeface işleviyle (ör. typeface(Typeface.DEFAULT)) yükleyebilirsiniz. typefaceFromFontFamily() alanı da 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 kontrolü eklendi. (I3c4bc)
  • Değiştirici'nin fabrika işlevlerinin, Modifier'da uzantı olarak tanımlandığını, dolayısıyla bunların sorunsuz bir şekilde birbirine bağlanabilmesini sağlayan lint denetimi eklendi. (I07981)
  • Anlamsal bağımsız değişken birleştirmeTümDescendants,mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
  • Eski kullanıcı arayüzü testi modülünü ve saplamalarını kaldırın (I3a7cb)
  • TextUnit.Inherit, TextUnit olarak yeniden adlandırılır.Diğer birimlerle tutarlı olarak belirtilmemiştir. (Ifce19)
  • Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
  • foundation:foundation-text modülü foundation:foundation (Idac0f) ile birleştirildi
  • Yer (yer (Ofset)) ve yergöreli(Ofset) seçimini kaldırın. Bunun yerine, aşırı yüklemeleri tam ofsetlerle 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 kayıtları içerir.

API Değişiklikleri

  • Modifier.fillMaxSize[Width|Height] ile benzer şekilde, artık LazyColumn/Row kapsamında Modifier.fillParentMaxSize[Width|Height] öğesinde kesirli değerleri destekliyoruz (I797e2, b/166586426)
  • KeyboardOptions.toImeOptions, herkese açık API'den kaldırıldı. (Ic2e45)
  • AmbientTextStyle, ProvideTextStyle ve AmbientContentColor kullanımdan kaldırıldı. Bunun yerine, Malzeme kitaplığındaki yeni sürümleri kullanın. Materyal dışı uygulamalar için bunun yerine, kendi bileşenlerinizde kullanılabilen kendi tasarım sisteminize özel tema ortamları oluşturmanız gerekir. (I74acc, b/172067770)
  • foundation.Text desteği sonlandırıldı ve text.Text ile değiştirildi. Temadaki değerleri kullanmayan, temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
  • TextFields'e maxLine'lar eklendi (Ib2a5b)
  • TextFields öğesini KlavyeOptions'ı kabul edecek şekilde güncelleyin (Ida7f3)
  • Metin Alanları'nda kullanılmak üzere eklenen Klavye Seçenekleri (I9ca32)
  • BasicText'i, BasicTextField'e paralel olarak metin için tasarımsız bir API olarak ekler. (I28268)
  • ExperimentalLazyDsl ek açıklaması kaldırıldı. LazyColumn/LazyRow artık @OptIn (Idab7a, b/166584730) eklenmeden kullanılabilir
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField politikasını kullanın. (I896eb)
  • BasicTextField, hem CoreTextField hem de BaseTextField öğelerinin yerine (Id4cea) eklendi
  • Kullanımdan kaldırılan LazyColumnItems/LazyRowItems (I1d8a8) öğelerini kaldırma
  • Doğal ölçümlere göre boyutlandırma için desteği sonlandırılan composable'lar kaldırıldı. (I18537, b/171811496)
  • göreliPaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin referans çizgilerine olan mesafeleri belirtme kolaylığı sağlamak için paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
  • matchHeightConstraintsFirst parametresi, en boy oranı değiştiricisine eklendi. Bu parametre, genişlik karşılıklarını denemeden önce boyut-yükseklik kısıtlamalarına ilişkin değiştiriciyi belirtmek için kullanılabiliyor. (Ie7c43, b/155290593)
  • Kullanımdan kaldırılan DpConstraints kaldırıldı. (I87884, b/171702471)

Hata Düzeltmeleri

  • Eşit olmayan ölçeklendirme kullanım alanlarını desteklemek amacıyla, birbirinden bağımsız yatay ve dikey eksenler için ölçek faktörlerini temsil eden ScaleFactor satır içi sınıfı kullanıma sunuldu.
    • ContentScale'e "computeScaleFactor" yöntemi eklendi
    • Hedefi tam olarak kaplaması için src sınırlarını genişletmek amacıyla, tek tip olmayan ölçeklendirme gerçekleştirmek için ContentScale.FillBounds eklendi.
    • Boyut parametreleriyle ScaleFactor parametrelerini hesaplamak için operatör yöntemleri eklendi.
    • (Ic96a6, b/172291582)
  • createToBitmap, captureToImage'a taşındı. (I86385)
  • CoreText'i @InternalTextApi olarak işaretler. Bunun yerine BasicText öğesini kullanın. (I6aaeb)
  • KlavyeSeçenekleri ImeOptions olarak yeniden adlandırın (I82f36)
  • KlavyeType ve ImeAction, KlavyeOptions'a taşındı (I910ce)
  • CoreTextField, @InternalTextApi olarak işaretlendi. Bunun yerine BasicTextField politikasını kullanın (Ie2469)
  • ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn (I708ad) eklenmeden kullanılabilir
  • ui-test-junit4 modülünü tanıtın (Ib91f8)
  • Simge API, Color.Unspecified şeklinde, sağlanan öğeyi veya boyacıyı ColorFilter olmadan çizecek olası bir ton rengi olarak alacak şekilde güncellendi. Önceden renk tonlamayı yok saymaya çalışıyordu.Belirtilmemişse, şeffaf bir renk tonuyla tonlama yapılır ve hiçbir şey oluşturulmazdı. (I049e2, b/171624632)
  • MeasureResult, MeasureScope dışına taşındı. (Ibf96d, b/171184002)
  • Düzenle ilgili çeşitli simgeler androidx.compose.ui'den androidx.compose.layout.ui konumuna taşındı. (I0fa98, b/170475424)
  • androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
  • FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
  • Seçim kapsayıcısı, geri çağırma olmadan eklendi (Ibfadb)
  • SeçimKapsayıcısı'nda SelectionHandles'ın Konumları İçin Testler Ekle. (Ie93db)
  • Eklenen Klavye otomatik düzeltme IME Seçeneği (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 kayıtları içerir.

API Değişiklikleri

  • androidx.compose.foundation.Icon, androidx.compose.material.Icon'a taşındı. Malzeme kitaplığını kullanmak istemiyorsanız Boyacı ile Resim bileşenini / Modifier.paint() kullanabilirsiniz. (I9f622)
  • Etkileşim Durumu, Modifier.scrollable, ScrollableColumn ve LazyColumnFor'a eklendi (I81566, b/169509805)
  • alignByBaseline, RowScope'a eklendi ve alignWithSiblings, alignBy (I06503, b/170628732) olarak yeniden adlandırıldı
  • Box, satır içi bir işleve sahip. (Ibce0c, b/155056091)
  • CoreTextField'e maxLine'lar eklendi (Ibee58, b/143687793)
  • softwrap, CoreTextField'e eklendi. (I21a4b)

Hata Düzeltmeleri

  • Bir composable API'nin, verileri kompozisyonlar genelinde tutmak için dahili olarak "hatırla" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı silmeden VectorPainter özelliğini sağlayın. (Ifda43)
  • ComposeTestRule'da geçişleri etkinleştirin; yanıp sönen imleci etkinleştirmek için ComposeTestRule'daki seçeneği kaldırın. (If0de3)
  • CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
  • Compose genelinde nasıl kullanıldığını daha iyi ifade etmek için Radius API'yi CornerRadius olarak yeniden adlandırdı. Belgeler, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
  • Oluşturulan değiştiriciye denetçi bilgilerini belirtme olanağı ekleyin (Idee08, b/163494569)
  • Klavyede Büyük Harf Kullanımı IME Seçeneği Eklendi (I8ac38)
  • Rtl Tutma Yeri Konumunu Düzeltin. (I6e1e0)
  • Kırıcı değişiklik: İşaretçi etkinliklerinde değiştirilebilecek tek değerin tüketim verileri olduğu düşünüldüğünde, döndürülen değer PointerInputFilter.onPointerEvent(...) öğesinden kaldırıldı. Artık PointerInputFilter.onPointerEvent(...) kaynağından veri döndürmek yerine, aktarılan PointerEvents'in tüketim verilerini değiştirebilirsiniz. (I6acd0)
  • Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)

Sürüm 1.0.0-alpha05

14 Ekim 2020

androidx.compose.foundation:foundation:1.0.0-alpha05, androidx.compose.foundation:foundation-layout:1.0.0-alpha05 ve androidx.compose.foundation:foundation-text:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

API Değişiklikleri

  • CoreTextField artık imleç işlevini destekliyor (Id23aa)
  • contentColor() ve currentTextStyle() API'lerini kullanımdan kaldırır ve bunları sırasıyla AmbientContentColor ve AmbientTextStyle ambients ile değiştirir. Geçerli değere, ambiyans özelliğinde (diğer ambiyanslarda olduğu gibi) .current kullanarak erişebilirsiniz. Bu değişiklik, tutarlılık amacıyla ve aynı şeyi birden çok yolla başarmamak için yapılmıştır. Ek olarak, amaçlarını daha iyi açıklamak için bazı ambiyans özelliklerini aşağıdaki şekilde yeniden adlandırır:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • Vurgu Ortamı -> AmbiyansEmphasisLevels
    • Dalga TemasıAmbient -> Ambiyans Dalgası Teması (I37b6d)

Hata Düzeltmeleri

  • Satır içi sınıflarda koruyucu değerlerin standartlaştırılması kapsamında, Color.Unset to Color olarak yeniden adlandırıldı.Diğer satır içi sınıflarla tutarlılık için belirtilmedi (I97611, b/169797763)
  • Eklenen Kopyalama/Yapıştırma/Kesme erişilebilirlik işlemleri (I6db4f)
  • TextOverflow.None sunuldu. Taşma Yok olduğunda, Metin artık taşmayı işlemeyecek ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
  • Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, Size.Unspecified ve sonlu olmayan Boyutlar ile uyumlu olacak şekilde güncellendi. (I95a7e)
  • Sayfalandırma Oluşturma modülü ve sayfa oluşturma entegrasyonu eklendi (Ib85da)
  • Boş değer atanabilir değerleri almak için LazyListScope'u değiştirme (I1765b)
  • OnPositionedModifier, OnGloballyPositionedModifier ve onPositioned() olarak onGloballyPositioned() olarak yeniden adlandırılır. (I587e8, b/169083903)
  • LazyColumn/Row (Idc16d) için örnekler eklendi
  • blankList'e (I06647) izin vermek için öğeler ve itemsIndexed yöntemleri için düzeltme
  • Denetleyici bilgilerini belirtmek için bir DSL ekleme (Ic9a22)
  • Uzun Bas'ı Metne Taşıyın. (Iff2bc)
  • Metin ve Demo Seçimi'ni devre dışı bırakın. (Ie7e97)
  • Erişilebilirlik için AnnotatedString'in SpannableString dönüşümüne destek sağlama. (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ı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan foundation.Box kullanımdan kaldırılacak ve bunun yerine create.foundation.layout'taki yeni Box kullanıma sunulacak. Yeni Box'ın davranışı, birden fazla alt öğeye sahip olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer şekilde davranan önceki Box'tan farklıdır. (I94893, b/167680279)
  • Kutu süsleme parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279) kullanın
  • Yeni bir LazyListState sınıfı ekleyin. Bu, LazyRow ve LazyColumn bileşenlerinin kaydırma konumunun gözlemlenmesine ve denetlenmesine olanak tanır. Örnekler, RememberLazyListState() kullanılarak oluşturulabilir ve bileşenin durum parametresine geçirilebilir. Şu anda, ilk görünür öğe ve ofsetler bu başlangıç sürümünde gözlemlenebilir. (Ic7cb7, b/159307669)
  • Geç liste konumu ve kaydırma ofseti artık Etkinlik yeniden oluşturma genelinde (Ie045f, b/166589058) kaydedilip geri yükleniyor.
  • Uzun tıklama semantik işlemi ekle (I6281b, b/156468846)
  • Zaman içinde tek bir paylaşılan durum mutatörünü korumak ve çakışan mutatörleri öncelik sırasına göre iptal etmek için MutatorMutex yardımcı programı eklendi (I3f975)
  • Ek açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @VisibleForTesting öğelerini dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
  • Dize girişli Metin'den inlineContent parametresi kaldırıldı. inlineContent'in AnnotatedString ile çalışması gerektiğinden kullanılmayacaktır. (Ief403)
  • Kullanımdan kaldırılan özel Düzenleme API'leri kaldırıldı. (Ic576d, b/168297922, b/168297923)
  • unbounded parametresi, düzen öğesinin sonsuz maksimum kısıtlamayla ölçülmesine olanak tanıyan wrapContentSize değiştiricilerine eklendi. (I77951, b/158559319)
  • Düzen kapsamlarının içeriklerinin (ör. RowScope içindeki alignWithSiblings) statik içe aktarılmasını 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 güncellendi
    • Ölçek ve rotasyon dönüşüm API'leri, DrawScope ve DrawTransform'daki x/y koordinatları için ayrı float parametreleri yerine, pivot koordinatı temsil eden tek bir Offset parametresi kullanacak şekilde güncellendi.
    • Rect.expandToinclude ve Rect.join yöntemleri kaldırıldı
    • Yarıçap belgeleri, eliptik bisiklete ek olarak oval olarak güncellendi
    • Satır içi Yarıçap sınıfı için herkese açık oluşturucunun doğrudan çağrılmaması gerektiğini, bunun yerine Yarıçap nesnelerinin işlev kurucuları aracılığıyla örneklendirmesi gerektiğini belirten belgeler eklendi
    • topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
    • Rect.translate'in yerini alan Rect.shift desteği sonlandı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şlev yerine bir özellik olarak değiştirildi
    • RoundRect oluşturucusu, x/y yarıçap değerleri için bağımsız parametreler yerine Yarıçap özelliklerini kullanacak şekilde güncellendi
    • Kaynağı 0,0 olan Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
    • Yarıçapa yıkıcı bir API eklendi
    • Çeşitli RoundRect uzantı işlevlerini mülk olacak şekilde taşıdılar.
    • (I8f5c7, b/168762961)
  • Her kaydırma sırasında gereksiz yeniden oluşturmalardan kaçınarak LazyColumnFor/LazyRowFor kaydırma için performans optimizasyonları (I64f65, b/168293643, b/167972292, b/165028371)
  • Kaydırma yapıp öğeleri değiştirdikten ve daha önce görünür olan öğe kaldırıldığında otomatik yukarı kaydırma uygulandığında, artık sondaki boş boşlukların gösterilmemesi için LazyColumnFor/LazyRowFor'daki kilitlenme düzeltildi (I220ab, b/161480164, b/167855468)
  • ScrollableContainer ve LazyColumnFor gibi, kaydırılabilir öğelerin aynı yöne sahip kapsayıcılarda iç içe yerleştirilmesine artık izin verilmiyor. Hiçbir zaman desteklenmiyordu ve LazyColumnFor (I6e101) öğelerini bestelemenin getirdiği titizliği bozuyordu
  • Birçok Grafik API 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
    • KlipPath dokümanları, yuvarlatılmış dikdörtgen yerine Path'e başvuruda bulunacak şekilde
    • KlipPath'de sağ parametreye ilişkin dokümanlardaki aralık sabitlendi
    • DrawScope.drawCanvas adınıdrawIntoCanvas olarak yeniden adlandırdı ve boyut parametresini kaldırdı
    • inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
    • 4 sınırın hepsine aynı içe değer değerini sağlayan ek aşırı yük eklendi.
    • Inset yönteminde, inset'in 4 tarafa da uygulanacağını belirten belgeler kaldırıldı
    • Rect sınıfıyla ilgili dokümanlar güncellendi
    • Rect parametrelerindeki 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ük oluşturuldu ve Rect.shift kullanımdan kaldırıldı
    • (If086a, b/167737376)
  • semantik özelliklerine Accessibility ScrollState ekleyin. (Ifeda9)
  • Nesne oluşturulmasını önlemek için TextRange'i satır içi yapın. (Id034b)
  • ParagrafKısıtlamaları kaldırıldı. Genişlik artık doğrudan Paragraf'a aktarılıyor. (Ica712)

Sürüm 1.0.0-alpha03

16 Eylül 2020

androidx.compose.foundation:foundation:1.0.0-alpha03, androidx.compose.foundation:foundation-layout:1.0.0-alpha03 ve androidx.compose.foundation:foundation-text:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • InnerPadding, PaddingValues olarak yeniden adlandırıldı. (I195f1, b/167389171)
  • Yer çekimi kullanımları tutarlı bir şekilde, düzen API'leriyle uyumlu hale gelecek şekilde yeniden adlandırıldı. (I2421a, b/164077038)
  • Yığına bir hizalama parametresi eklendi. Bu parametre, tüm Yığın alt öğeleri için varsayılan hizalamanın belirtilmesini sağlar. (Ie80ca, b/164085265)

Hata Düzeltmeleri

  • Bunu kullanan DpConstraints ve API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
  • widthIn adlı kümenin minWidth ve maxWidth parametreleri min ve max olarak yeniden adlandırıldı. Benzer şekilde preferredWidthIn, heightIn, preferredHeightIn için de durum benzer. (I0e5e1, b/167389544)
  • Mevcut genel yöntemler kullanımdan kaldırılacağı için onNode ve ComposeTestRule'a diğer genel yöntemler eklendi. (Ieae36)
  • motionScope'taki boyut ve konum hesaplamalarının diğerlerine neden olan sabit boyut ve konum hesaplamaları (Iaf358, b/166589947)
  • createAndroidComposeRule ve AndroidInputDispatcher, androidx.ui.test.android konumundan androidx.ui.test konumuna taşındı (Idef08, b/164060572)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.foundation:foundation:1.0.0-alpha02, androidx.compose.foundation:foundation-layout:1.0.0-alpha02 ve androidx.compose.foundation:foundation-text:1.0.0-alpha02 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

Hata Düzeltmeleri

  • TestUiDispatcher deneysel olarak işaretlenmiş (Iae99d, b/161247083)
  • Bu saatten kare bekleyen bir şey olup olmadığını görmek için ManualFrameClock.hasAwaiters eklendi; ManualFrameClock gerektiren testleri çalıştırırken runBlocking yerine runWithManualClock, testlerinizde ana kullanıcı arayüzü görev 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 kayıtları 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 kayıtları içerir.

API Değişiklikleri

  • Sabit aralıkla konumlandırma düzeni alt öğelerini etkinleştirmek için Satır ve Sütun'a boşlukla düzenleme eklendi. Alt öğeleri yan yana konumlandırmayı ve Satır/Sütun'da bir Hizalamaya göre hizalanmasını sağlamak için, hizalanan Düzen de eklendi. Önceki Arrangement.Vertical#arrange ve Arrangement.Horizontal#arrange yöntemleri kullanımdan kaldırılmıştır ve özel Düzenlemelerin yazılması gelecekte desteklenmeyecektir. (I6733d, b/161985975)
  • Başlangıç, satır içi sınıf (Iaec70) haline geldi
  • TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
  • Modifier.drawBorder kullanımdan kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Sınır veri sınıfı, BorderStroke ile değiştirildi (I4257d, b/158160576)
  • Dikey Kaydırma ve Yatay Kaydırmaer kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Modifier.drawbackground kaldırıldı. Değiştirici.background'ı (I73b0d, b/163019183) kullanma
  • Kullanımdan kaldırılan fillMax* değiştiricilerini, LazyColumnFor'un (Ifa78d) doğrudan alt öğesi olmayan öğeler için bu tür değiştiricileri doğru şekilde eklemeyi zorlaştırdığı için LazyItemScope'tan kaldırın
  • LazyColumn/LazyRow uygulaması DSL olarak eklendi (I93cc6)
  • Sınırlamalar artık satır içi bir sınıf (I88736) oldu
  • FillMaxWidth, fillMaxHeight ve fillMaxSize değiştiricilerini kullanarak, bir düzeni mevcut alanın küçük bir kısmına boyutlandırma özelliği eklendi. (I945bb, b/161562591)

Hata Düzeltmeleri

  • Seçim Container'ına bir değiştirici parametre eklendi (I4aada, b/161487952)
  • SemanticsPropertyKey'eMergePolicy lambda eklendi. Bu, birleştirmeAllDescendants semantik birleştirmesi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten varsa üst değeri, aksi halde 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 bağlamlarda konumu otomatik olarak yansıtmaz. Dilerseniz bunun yerine PlacementScope.placeRelative() politikasını kullanabilirsiniz. (I873ac, b/162916675)
  • Kullanımdan kaldırılan FilledTextField bileşeni kaldırıldı. Doldurulmuş metin alanının Materyal Tasarım uygulamasını almak için lütfen bunun yerine Metin Alanı'nı kullanın. (I5e889)
  • DoğrusalİlerlemeIndicator'a backgroundColor parametresi eklendi ve CircularProgressIndicator'dan dahili dolgu kaldırıldı. Değerler arasındaki ilerlemeyi canlandırırken varsayılan AnimationSpec olarak kullanılabilen yeni İlerlemeIndicatorConstants.DefaultİlerlemeAnimationSpec eklendi (If38b5, b/161809914, b/161804677)
  • Artık state { ... } composable'ı kullanımdan kaldırılarak yerine açık remember { mutableStateOf(...) } çağrısı yapılması gerekiyor. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkisi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)
  • RRect, oluşturma adlandırma kalıplarına daha iyi sığması için RoundRect olarak yeniden adlandırıldı RRect'e ve kullanımdan kaldırılan RRect işlev kurucularına (I5d325) benzer işlev kurucuları oluşturuldu
  • onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine alt düzende onPositioned ve OnPositionedModifier'ı kullanmalıdır. (I4522e, b/162109766)
  • IntSize artık bir satır içi sınıftır (I2bf42)
  • Düzenlemek için Boş Alana Uzun Basın. (Ib1e5b)
  • Metne Dokunduktan Sonra Kayan Araç Çubuğunu Gizle. (If4525)
  • Seçimi Güncellerken Kayan Araç Çubuğunu Gizle. (I8444c)
  • Bulanıklaştırıldığında seçimini kaldır. (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 kayıtları içerir.

API Değişiklikleri

  • Lazy listelerinin itemContent parametresi için LazyItemScope eklendi. Üst maksimum boyutu dolduracak değiştiriciler sağlar. Bu da, öğenin görüntü alanını doldurması gerektiğinde kullanım alanını çözer ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() çalışmaz. (İbd3b2, b/162248854)
  • İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
  • LazyColumnForIndexed/LazyRowForIndexed - itemCallback'te hem dizin hem de öğe sağlayan LazyColumnFor/LazyRowFor sürümleri eklendi. Mevcut bir öğeye ek olarak geçerli bir dizini bilmeniz gerektiğinde yararlıdır. (I65ff3)
  • Modifier.deternimateİlerlemesi, Modifier.progressSemantics olarak yeniden adlandırıldı (I9c0b4)
  • LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor olarak yeniden adlandırıldı (I84f84)
  • En iyi uygulama nedeni için İşaretler/Ek Açıklamalar ekleyin. (I66b20)
  • foundation.shape.corner paketi, foundation.share'e düzleştirildi (I46491, b/161887429)
  • LazyRowItems/LazyColumnItems için сrossrise yerçekimi parametresi eklendi. LazyRowItems/LazyColumnItems artık içerik sarmalama davranışını destekliyor. (Ib39fc)
  • ZoomableState, ZoomableController olarak yeniden adlandırıldı. smoothScale için özel eğri desteği eklendi. enabled ve onZoomStarted işlevi eklendi (If8b8f)
  • Material FilledTextField, TextField olarak, temel TextField'in adı ise BaseTextField olarak değiştirildi. Böylece, istenen API'nin en basit şekilde keşfedilip kullanılmasını kolaylaştırdı (Ia6242, b/155482676)
  • Daha önce desteği sonlandırılmış AdapterList kaldırılmış. Bunun yerine LazyColumnItems'ı kullan (I12b9b)
  • Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
  • Eski ConstraintLayout DSL kaldırıldı. ConstraintSet2, ConstraintSet olarak yeniden adlandırıldı. (If58d1, b/162450908)
  • Modifier.absoluteOffset() ve Modifier.absoluteOffsetPx() eklendi
  • Row ve Column artık satır içi işlevlerle bunları kullanmanın ek yükünü önemli ölçüde azaltıyor. (I75c10)

Hata Düzeltmeleri

  • Genel API düzeltmelerini ele alın (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırın
    2. Offset ve IntOffset sınıflarını tutarlı bir API yüzeyine sahip olacak şekilde
    3. Offset API ile tutarlı olması için IntOffset.Origin adını IntOffset.Zero olarak yeniden adlandırın
    4. Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için yerelCanvas yöntemi Canvas arayüzünün dışına taşındı.
    5. DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş bırakılamamasını sağlamak için saplama BlankCanvas sınıfı oluşturuldu
    6. ClipOp numaralandırmaları Pascal Kılıfı olarak yeniden adlandırıldı
    7. Filtre Quality enum'ları Pascal Case olarak yeniden adlandırıldı
    8. Strokejoin enum'ları, Pascal Case olarak yeniden adlandırıldı
    9. PointMode sıralamaları Pascal Case olarak yeniden adlandırıldı
    10. PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
    11. PathFillType numaralandırmaları Pascal Case olarak yeniden adlandırıldı
    12. StrokeCap sıralamaları Pascal Case olarak yeniden adlandırıldı
    13. DrawCache uygulaması, artık lateinit parametrelerini kullanmayacak şekilde güncellendi.
    14. DrawScope, fillPaint ve stroPaint dahili parametreleri için geç yetkiyi kullanacak şekilde güncellendi
    15. Daha az ek yük için Box kullanımını önlemek üzere Image composable güncellendi
    16. Outline sınıfı, @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
    17. PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
    18. Oluşturma bunları zaten işlediğinden eşitlik için gereksiz koşullu denetimleri kaldırmak üzere Vector alt bileşimi güncellendi
    19. İşlev kurucuları lehine, kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemleri
    20. @Immutable ve @Stable API'leriyle güncellenmiş Fırça sınıfları ve işlev kurucuları
    21. VertexMode sıralaması PascalCase olarak güncellendi
    22. Değiştiyse boyadaki çizgi parametrelerinin üzerine koşullu olarak yazmak için DrawScope selectPaint yöntemi güncellendi
    23. Boyut güncellendi, böylece yıkıcı API eklendi, UnspecifiedSize yeniden adlandırılıp Belirsiz olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
  • Yeni eş yordam tabanlı saatler ile eski geri çağırmaya dayalı saatleri kullanmaya devam eden API'ler arasındaki boşluğu doldurmak için bir AnimationClockObservable olarak MonotonicFrameClock kullanmanızı sağlayan MonotonicFrameAnimationClock eklendi.

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

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

  • SemanticsNodeInteraction.getBoundsInRoot() adı SemanticsNodeInteraction.getUnclippedBoundsInRoot() olarak değiştirildi (Icafdf, b/161336532)

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

  • Modifier.plus kullanımdan kaldırıldı, bunun yerine Modifier.then kullanın. "Ardından" daha güçlü bir sipariş sinyaline sahiptir. Ayrıca, zinciri bozan ve okunması daha zor olan Modifier.padding().background() + anotherModifier yazmayı da yasaklar (Iedd58, b/161529964)

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

  • RemeasurementModifier eklendi. Kullanıcıların düzeni eşzamanlı olarak yeniden ölçmesine olanak tanır. Genel olarak, yeniden ölçüm/geçiş otomatik olarak gerçekleştiğinden hiçbir zaman buna ihtiyacınız yoktur ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)

  • isSystemInDarkTheme artık her zaman sistem genelinde koyu tema ayarını dikkate alıyor ve son yönergeye göre Q'dan önceki güç tasarrufu durumunu yok sayıyor. (I0c10c)

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

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

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

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 kayıtları içerir.

Oluştur'un 0.1.0-dev15 sürümünü kullanmak için şunları yapmanız gerekir:

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

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

API Değişiklikleri

  • ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems içindeki yeni parametreye benzer şekilde, artık içerik kırpıldıktan sonra içerik için dolgu eklemeye olanak tanıyan contentPadding parametresi de bulunmaktadır. Bu, yalnızca bir değiştirici parametreyle yapılamaz. Ayrıca, yalnızca ilk öğeden önce/son öğeden sonra bir boşluk eklenmesine olanak tanır. (Ibc24e)
  • Metin alanlarındaki onFocusChange geri çağırması, onFocusChanged (Ida4a1) olarak yeniden adlandırıldı
  • Vertical Scroller ve Horiziontal Scroller kullanımdan kaldırıldı. Sütun/Satır davranışı ve parametreleriyle ilgili yerleşik deneyim için ScrollableColumn ve ScrollableRow'u kullanın veya kendi öğenizde Modifier.vertical Scroll ve Modifier.YAYA kaydırıcılarını kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırıldı ve yerini ScrollState (I400ce, b/157225838, b/149460415, b/154105299) kullanıma sunun.
  • Modifier.draggable ve Modifier.scrollable API'leri yeniden düzenlendi. DragDirection kaldırılmış ve yerini Yön aldı. Kaydırılabilir için gereken 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, 'semantik { gizlendi = true }' artık şu şekilde yazıldı: semantics { hidden() }. (Ic1afd, b/145951226, b/145955412)
  • RoundedCornerShape ve CutCornerShape tarafından kullanılan köşe boyutları artık %50'den fazla olabilir (Id2340, b/160400213)
  • Image composable için varsayılan ContentScale parametresi, "Inside" yerine "Sığdırma" olarak değiştirildi. Bu işlem, en boy oranı korunarak düzen boyutu, boyacının doğal boyutundan daha büyükse alttaki boyanın ölçeğini artırma davranışı elde etmek için yapılmıştır. Bu davranış, Resme sabit boyutlar sağlama beklentilerini daha iyi karşılar ancak composable'ın boyutunu hesaplamak için yalnızca içsel boyut kullanılırsa varsayılan davranışı etkilemez. (I40ae3, b/159838006)
  • Statik animasyon spesifikasyonu kavramını netleştirmek için üst düzey API'larda AnimationBuilder yerine AnimationSpec nesnesini kullanın -Tween, bahar gibi AnimationSpecs oluşturmak için lambda gereksinimini kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine kurucu parametrelerini doğrudan alırlar. -Oluşturuculara güvenmek yerine kurucuların açılmasını sağlayan AnimationSpec uygulamasının genel kullanım kolaylığını artırma -KeyFrames ve Tween için süre ve gecikmeyi İnt olarak değiştirin. Bu, gereksiz tür yayınlarını ve yöntem aşırı yüklemesini ortadan kaldırır (hem Long hem de Int'i desteklemek için). (Ica0b4)
  • Tıklanabilir kaldırıldı. Modifier.clickable (I84bdf) dosyasını kullanın
  • LazyRowItems eklendi - LazyColumnItems'in yatay olarak kaydırılan analogu (Ibbcf7)
  • Alt düzey durum bilgisiz animasyon API'leri kullanıma sunuldu. Bu API'ler (I63bf7)
  • androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue kullanımdan kaldırıldı. Bu türü kullanan TextField,FilledTextField ve CoreTextField composable öğeleri de kullanımdan kaldırılmıştır. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)
  • IntPx kullanımı Int ile değiştirildi. IntPxPosition değeri IntOffset olarak değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
  • androidx.ui.foundation.shape.RectangleShape kaldırıldı; androidx.ui.graphics.RectangleShape (I94939, b/154507984) kullanın
  • Boyutlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxSize yerine Beden sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak gösterilen genişliği ve yüksekliği temsil etmek için uzun bir paket halinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (Ic0191)
  • Konumlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak temsil edilen x ve y ofsetlerini temsil etmek için uzun bir paket şeklinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)
  • Sıkıştırarak yakınlaştırma işlevi için Değiştirici.zoomable özelliği eklendi (Id5d63)
  • Geçiş yapılabilir bileşen kullanımdan kaldırıldı. Bunun yerine Modifier.toggleable'ı kullanın (I35220, b/157642842)
  • MutuallyCustomSetItem kullanımdan kaldırıldı. Bunun yerine Modifier.selectable'ı kullanın. (I02b47, b/157642842)
  • TestTag artık kullanımdan kaldırıldı. Bunun yerine Modifier.testTag'i kullanın. (If5110, b/157173105)
  • Metne, yanlışlıkla daha önce eklenmemiş olan fontweight parametresini ekler (I56937)
  • Piksel parametreleri (I19d02) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi
  • Dikey Scroller artık Column (Sütun) özelliğini kutudan çıkarır. Horizontal Scroller artık Row'u kutudan çıkarır. (Ieca5d, b/157020670)
  • Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b)
  • Modifier.indication temel paketine eklendi. Özel olarak etkileşimde bulunulabilir öğelerinizde "bas/sürükle/başka bir eylem" göstermek için kullanın (I8425f, b/155287131)
  • Dikey Kaydırma ve Yatay Kaydırma, artık ters kaydırmayı destekliyor isReversed, ScrollerPosition (I953bd) için ayarlı.
  • Metin düzenine composable'lar ekleme desteği. (I1373c)
  • Birleştirilmiş CanvasScope uygulamaları artık sadece DrawScope ve ContentDrawScope oluyor. CanvasScope'u DrawScope olarak adlandırıyoruz. DrawScope, Density arayüzünü uygulamak ve ContentDrawScope'ta LayoutDirection'da LayoutDirection'ı Silinmiş DrawScope alt sınıfı sağladı Painter ve PainterModifier artık RTL özelliğini sağlamayacak şekilde güncellendi (DrawScope bunu manuel olarak sağlamadan zaten sunduğu için (I1798e))
  • Modifier'dadrawArka Plan uzantı API'leri yerine, kullanımdan kaldırılan Drawbackground API'si kaldırıldı. Kod yollarını azaltmak için renk, fırça ve boya çizimiArka plan uygulamaları yeniden düzenlendi ve kompozisyonun bir parçası olarak Değiştirici'nin oluşturulması gerekliliği kaldırıldı. (I0343a)
  • Bunun yerine CanvasScope'u kullanıma sunmak için Tuval sunan daha üst düzey oluşturma API'leri güncellendi. Bu, tüketicilerin kendi Paint nesnelerini koruma ihtiyacını ortadan kaldırır. Hâlâ bir Tuval'e erişmesi gereken tüketiciler, çizim komutu vermek için alttaki Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilirler. (I80afd)
  • HorizontalScroller ve Vertical Scroller kayıtlı örnek durumunu kullanarak kaydırma konumlarını geri yüklemez. (Ia0fae, b/155075048)
  • FocusManagerAmbient kaldırıldı. Odaklanmak için FocusModifier.requestFocus öğesini kullanın. (Ic4826)
  • Tablo düzeni, yenilenmiş bir API ile tekrar kullanıma sunulana kadar geçici olarak kaldırılmıştır. (Id88a7)
  • Durum bilgisiz ve bildirim temelli bir çizim API'si yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır. Boyutlandırma bilgileri de ilgili inset sınırlarına dahil edilir. Tüketicinin çizim işlemlerini yapılandırmak için kendi Boya durumu nesnesini korumasına gerek yoktur.

    CanvasScopeSample eklendi ve demo uygulaması bildirim temelli bir grafik demosu içerecek şekilde güncellendi (Ifd86d)

  • ColoredRect kaldırıldı. Çizimler Arka plan değiştiricisi olan Kullanıcı Kutusu (I983c7, b/152753731)

  • Metin Alanı'na imleç rengini özelleştirme özelliği ekleyin (I6e33f)

  • Artık onTextInputStarted geri çağırma işlevi (I8dc44, b/151860051) ile sunulan SoftwareKeyboardController'ı kullanarak yazılım klavyesini gizlemek/göstermek mümkündür.

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

  • Text() öğesine sık kullanılan parametreleri ekler. Şu anda Text(style = TextStyle(textAlign = TextAlign.Center)) gibi az sayıda parametre ileten bir yerel metin stili oluşturuyorsanız parametreleri doğrudan sağlayabilirsiniz: Text(textAlign = TextAlign.Center) (I82768)

  • Odak alt sistemiyle entegrasyon sağlamak için CoreTextField/TextField odakIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)

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

  • Etkileşim Durumu ve Etkileşim eklendi. Böylece, basma ve sürükleme gibi kullanıcı arayüzü durumu değişikliklerine tepki veren bileşenlerin oluşturulması kolaylaştırıldı (Icfe25, b/152525426)

  • RectangleShape, androidx.ui.foundation.shape.* biçiminden androidx.ui.graphics'e taşındı.* (Ia74d5, b/154507984)

  • API'deki tüm null yapılabilir Renk kullanımları, null özelliği olmayanlarla değiştirildi ve null yerine Color.Unset (Iabaa7) değeri kullanıldı

  • TextField API güncellemesi - onFocus ve onBlur geri çağırmaları, (I66cd3) parametresiyle tek bir onFocusChange (Boole) geri çağırmasında birleştirildi

  • ScaleFit, ContentScale olarak yeniden adlandırılarak Hizalama API'si ile aynı modülde yaşanacak şekilde, ContentScale kullanıcı arayüzü grafiklerden arayüz çekirdek modülüne taşındı. FillMaxDimension Kırp'ı Kırpma, ImageView.ScaleType5 ile kullanılan Resim Görünümü.ScaleType.CENTER_CROP ve Fit ile aynı sonucu elde etmenin, Kırpma ve Hizalama

  • ProvideContentColor'ı kaldırır, bunun yerine doğrudan Providers (Iee942) ile ContentColorAmbient'i kullanın

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

  • DrawModifier API'sını iyileştirin:

    • Draw() ContentDrawScope için alıcı kapsamı oluşturuldu
    • Draw() üzerindeki tüm parametreler kaldırıldı
    • DrawScope, eski CanvasScope ile aynı arayüze sahip
    • ContentDrawScope'tadrawContent() yöntemi (Ibaced, b/152919067) bulunur
  • ColoredRect kullanımdan kaldırıldı. Bunun yerine Box(Modifier.preferredSize(width, height).drawBackground(color)) politikasını kullanın. (I499fa, b/152753731)

  • Şekil tema 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)

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

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

  • Onay Kutusu, Switch ve Geçiş Özellikli'ye (I41c16) enabled parametresi ekle

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

  • Vektör grafikleri için mevcut alt bileşim API'sinin yerini alması için VectorPainter API'si eklendi. Alt kompozisyonun sonucu DrawModifier yerine bir VectorPainter nesnesidir. Önceki DrawVector composable'lar kullanımdan kaldırıldı ve yerine VectorPainter geldi.

    Image(Painter) API'sinin adı PaintBox(Painter) olarak değiştirildi. ImageAsset yerine VectorAsset (I9af9a, b/149030271) hariç, Image composable gibi davranan Vector composable oluşturuldu

  • Belirli bir ImageAsset'i ekrana çizmeye ek olarak boyutlandırma/düzeni işlemek için Image composable oluşturuldu. Bu composable, doğal boyutuna uygun olarak rastgele bir Painter örneği çizmeyi ve belirli bir sabit veya minimum boyutu (Ibcc8f) desteklemeyi de destekler.

  • Button, FloatingActionButton ve Clickable'ın 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 Image composable arasındaki farkı daha iyi ayırt etmek amacıyla Image, ImageAsset olarak yeniden adlandırıldı.

    Geleneksel Android uygulaması geliştirmeyi oluşturma çerçevesiyle birleştirmek için yararlı olan bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap'te (Bitmap.asImageAsset()) uzantı yöntemi oluşturuldu. (Id5bbd)

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

  • Yığın bileşeni sağdan sola yönü destekler (Ic9e00)

  • Simge, Simge Düğmesi ve SimgesiToggleButton eklendi, AppBarIcon kaldırıldı. Mevcut AppBarIcon kullanımlarını doğrudan iconButton ile değiştirebilirsiniz. Böylece artık doğru dokunma hedefine sahip olurlar. Kullanım bilgileri için örneklere ve doğrudan bu bileşenlerle birlikte kullanabileceğiniz, sağlanan Malzeme Simgelerine ait Simgelere bakın. (I96849)

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

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

  • Özel Kaydırıcıların/Listelerin oluşturulmasına olanak tanıyan Kaydırılabilir bileşen eklendi (I5fd37)

  • Arka plan, Drawbackground olarak yeniden adlandırıldı ve varsayılan olarak ezberlenmesi için ayarlandı (Ia0bd3)

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

  • Tuval bileşeni eklendi. Bu composable yalnızca bir boyut kaplar (kullanıcı tarafından sağlanır) ve CanvasScope (I0d622) özelliğini kullanarak çizim yapmanıza olanak tanır.

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

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

  • Kaydırma araçları artık yerel Android hızlı hareket davranışı sergiliyor. (I922af, b/147493715)

  • DrawBorder yerine Kenarlık Değiştirici'yi (Id335a) kullanıma sunduk

  • Modifier.testTag ile karışıklık olmaması için Modifier.tag'in adı Modifier.layoutId olarak değiştirildi. (I995f0)

  • ConstraintLayout yönergeleri oluşturulurken yüzde parametresi kesir olarak yeniden adlandırıldı. (Ida2db)

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

  • ConstraintLayout'ta RTL desteği düzeltildi. RTL'nin farkında olmayan API'ler eklendi. (I3b1c7)

  • ConstraintLayout için yeni bir DSL eklendi. Daha fazla bilgi için lütfen örneklere bakın. (Icaa9a)

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

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

  • Kullanımdan kaldırılan Rowalign, Column boyunca ve Column öğeleri kaldırıldı. (If60d4, b/155858731)

  • Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() öğesini kullanın. (If8044)

  • ofsetleri (dinamik) piksel cinsinden tanımlamak için kullanılabilen ofsetPx düzen değiştiricisi eklendi. (I5af57)

  • HizalamaLineOffset composable kullanımdan kaldırıldı. Lütfen bunun yerine relevantPaddingFrom() değiştiricisini kullanın. CenteralignmentLine composable kaldırıldı. (I60107)

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

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

  • Kullanımdan kaldırılan LayoutWidth/Yükseklik/Boyut değiştiricileri kaldırıldı. (Ib0bc1)

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

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

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

  • Kullanımdan kaldırılan LayoutLayout değiştiricileri kaldırıldı. (I10877)

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

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

  • wrapContentWidth ve wrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama beklenecek şekilde güncellendi. Yerçekimi değiştiricisi, dikey veya yatay Hizalamayı kabul edecek şekilde güncellendi. Satır, Sütun ve Yığın, özel sürekli Hizalamaları destekleyecek şekilde güncellendi. (Ib0728)

  • Hizalama, rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)

  • EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Malzeme Düğmeleri'nin innerPadding parametresi pedal çevirme olarak yeniden adlandırıldı. (I66165)

  • alignToSiblings artık Yerleştirilebilir yerine Ölçülmüş kabul eder. (I5788d)

  • Doğal ölçümlere boyutlandırma için değiştiriciler eklendi ve bu amaca hizmet eden bileşenler kullanımdan kaldırıldı. (I8295d)

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

  • Kullanımdan kaldırılan Wrap and Center composable'ları kaldırıldı. (I29e23)

  • Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi; kullanımdan kaldırılan LayoutModifier (If32ac)

  • RowScope ve ColumnScope üyelerine artık Satır ve Sütun dışından erişilebilir. (I3a641)

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

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

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

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

  • AspectRatio composable, bunun yerine değiştiriciyi devreye girdi. Eski FlexColumn, FlexRow composables ve Boşluk değiştirici (Iec8a7) silindi

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

  • TextField seçimini değiştirmek için Sürükleme Seçimi Tutma Yerlerini uygulayın. (I27032)

  • Metin Alanı Seçimi için LongPressAndDrag yöntemini uygular. (I17919)

Hata Düzeltmeleri

  • FocusModifier kullanımdan kaldırılmış ve bunun yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver sitesine yapılmıştır. FocusState ve FocusDetailsState desteği, onun yerine FocusState2 (I46919, b/160822875, b/160922136)
  • runOnIdleCompose, runOnIdle (I83607) olarak yeniden adlandırıldı
  • Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri, performansXYZ olarak yeniden adlandırıldı. (I7f164)
  • Daha önce kullanımdan kaldırılan Modifier.ripple'ı kaldırır. Tıklanabilir artık varsayılan gösterge olarak dalgaları kullanıyor (uygulamanızda bir MaterialTheme {} ayarlıysa). Böylece çoğu durumda sadece tıklanabilir özelliğini kullanabilir ve ücretsiz dalga gösterimi alabilirsiniz. Dalga için renk / boyut / sınırlı parametresini özelleştirmeniz gerekirse manuel olarak bir RippleIndication URL'si oluşturup gösterge parametresi olarak tıklanabilir parametreye aktarabilirsiniz. (I663b2, b/155375067)
  • Eski boyut testi API'leri kaldırıldı. (Iba0a0)
  • LayoutNode deneysel API'sı yapıldı (I4f2e9)
  • Kaydırma yönü kilitlemesinin 1. sürümü, Compose'da uygulanır. (I1ce7a, b/150289741)
  • Pop-up'lar, İletişim Kutuları ve Menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)
  • Layout() işlevinin ölçüm bloğundan düzen yönü parametresi kaldırıldı. Bununla birlikte düzen yönü, ölçüm kapsamı nesnesi (Ic7d9d) aracılığıyla geri çağırma içinde kullanılabilir
  • MutlakArrangement Ekle: Satır içindeki alt öğelerin RTL (I3a1df) biçiminde otomatik yansıtma olmadan düzenlenmesini sağlar
  • @Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) (Id211e) ile değiştirin
  • Bu değişiklikten önce, bir @Composable işlevi (I5205a, b/158123804) varsa oluşturma derleyici eklentisi, bir @Composable işlevinin içindeki kuruculara yapılan çağrılarda önemsiz bir şekilde engelleniyordu.
  • Etkinlik veya Fragment'teki (I5fdd1) benzer bir şekilde ViewModel oluşturmaya veya daha önceden oluşturulmuş bir görünüm oluşturmanıza olanak tanıyan viewModel() composable ekleyin
  • Yarıçap sınıfı yeniden düzenleyerek satır içi bir sınıf oldu. Tamamlayıcı oluşturma yöntemleri, varsayılan parametresi olan işlev kurucunun lehine olan ve y ekseni boyunca yarıçapı zorunlu x ekseni yarıçap parametresinin yarıçapıyla aynı olacak şekilde ayarlanarak kaldırıldı.

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

  • Piksel parametreleri için yalnızca Dp ve temel türlere güvenmeyi amaçlayan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)

  • Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)

  • Piksel parametreleri (Id3434) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi

  • Piksel parametreleri için yalnızca Dp ve temel türlere (I97a5a) dayalı büyük yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi

  • TextField'in imleci yanıp sönen bir animasyon içeriyor (Id10a7)

  • Kısmi hareketler için artık Hareket Jetonu'nun (Id7ae5) geçirilmesi gerekmiyor

  • Piksel parametreleri (I57bff) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi

  • Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırılmıştır. (I4cfdc)

  • AnnotatedString.Builder.addNotlarString'i addStringnot olarak yeniden adlandırın. (I5059e)

  • Hizalama API'si güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtmaz) (I38cd3)

  • Layout ve LayoutModifier alt öğeleri, farklı bir düzen yönüyle ölçülebilir. (Ibd731)

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

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

  • activity.setContent { } bloğuna yerleştirdiğiniz ilk düzeni ölçme yöntemimizi değiştirdik. Daha önce tüm etkinlik ekranını doldurması gerekiyordu, şimdi ise düzeninizi bir Grubun içine yerleştirmiş 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() öğesini uygulayabilirsiniz. (Ie88a7, b/153453714)

  • ui-text-compose modülünün adı ui-text olarak değiştirildi. Kullanıcı arayüzü metin artık CoreText ve CoreTextField composable'larını (Ib7d47) içeriyor

  • kullanıcı arayüzü modülü, ui-text-core (I57dec) olarak yeniden adlandırıldı

  • ui-framework/CoreText, CoreTextField composable'ları ui-text-compose altına taşındı. Projenize ui-text-compose eklemek isteyebilirsiniz. (I32042)

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

  • [Mutable]Eyalet mülk delege operatörleri, Kotlin 1.4 mülk yetkilendirmesi optimizasyonlarını desteklemek için uzantılara taşındı. Arayanların by state { ... } veya by mutableStateOf(...) kullanmaya devam etmek için içe aktarma işlemleri eklemeleri gerekir. (I5312c)

  • DrawtierModifier vedrawLayer() öğelerini artık varsayılan olarakClipToBounds ve klipToOutline'ı false olarak ayarlayın. (I0eb8b, b/152810850)

  • LayoutResult'ın adı MeasureResult olarak değiştirildi. (Id8c68)

  • Kullanımdan kaldırılan Center composable. Bu öğe, LayoutSize.Fill + LayoutLayout.Center değiştiricisi ile veya uygun değiştiricilerin uygulandığı Box ya da Stack composable'larından biriyle (Idf5e0) değiştirilmelidir.

  • LayoutEsnek, Layoutweight olarak yeniden adlandırıldı. Sıkı parametre, doldurulacak şekilde yeniden adlandırıldı. (If4738)

  • DrawVector, normal bir composable işlevinden, vektörü bir düzene arka plan olarak çizecek bir DeğiştiricidrawVector() işlevi döndürecek şekilde değiştirildi. (I7b8e0)

  • ClipToBounds adlı composable işlev işlevini,drawClip() değiştiricisiyle değiştirin. DrawClipToBounds, yalnızca katman sınırlarını bir dikdörtgen şekli ile kırpmanız gerektiğinde kullanmak için kullanışlı bir değiştiricidir. (If28eb)

  • DrawShadow composable işlevidrawShadow() değiştiricisiyle değiştirildi. Gölgeler artık LayerModifier'ın parçası olarak çiziliyor. (I0317a)

  • androidx.compose.ViewComposer, androidx.ui.node.UiComposer androidx.compose.Emittable'a taşındı. ComponentNode ile yedekliyordu. androidx.compose.ViewAdapters kaldırıldı. Bunlar artık desteklenen bir kullanım alanı değildir. Compose.composeInto kullanımdan kaldırıldı. Bunun yerine setContent veya setViewContent kullanın. Compose.disposeComposition kullanımdan kaldırıldı. Bunun yerine, setContent tarafından döndürülen Composition üzerindeki 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 ComponentNode#emitMode0 olarak yeniden adlandırıldıComponentNode#removeAt#emitMode0 olarak yeniden adlandırıldı

  • Kullanımdan kaldırılan Wrap composable. LayoutLayout değiştiricisi veya Stack composable (Ib237f) ile değiştirilebilir

  • Düzen yönü, üst düzen düğümünden alt öğelere yayıldı. Düzen yönü değiştiricisi eklendi. (I3d955)

  • Yeni oluşturulan Değiştiricinin birden fazla Değiştirici örneği arasında paylaşılabilecek bir orijinal Painter referansı olduğundan Painter.toModifier'ın adını Painter.asModifier olarak değiştirin. (I7195b)

  • LayoutPadding değiştiricisinde sağdan sola yönü destekleme (I9e8da)

  • Density ve DensityScope tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kodunu kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)

  • ValueHolder sınıfı kaldırıldı. Animasyon değeri alanını soyut hale getirerek alt sınıfların değer güncellemesini izleyebilmesini sağlamak için Animasyon Değerini, Animasyonu kaydırma sınıflarını yeniden yapılandırdı.

    • Canlandırma Değeri, Canlandırma Kayanlığı vb. için model sınıfları eklendi.
    • Değerler arasında animasyon oluşturmak için yeni bir basit @Composable API grubu eklendi.
    • (I79530)
  • Ambients API'deki önemli değişiklikler. Ayrıntılar için günlüğe ve Ambient<T> dokümanlarına bakın (I4c7ee, b/143769776)

  • Placeable#get(HizalamaSatırı) öğesinden döndürülen hizalama çizgisi tam konumları artık boş değil. Sorgulanan hizalama çizgisi eksikse Hizalama Satırı.Belirtilmemiş döndürülür. (I896c5, b/158134875)

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

  • WithConstraints sondaki lambda API'si değiştirildi. Şimdi iki parametre yerine bir alıcı kapsamına sahiptir. Bu alıcı kapsamı, sınırlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlar (I91b9a, b/149979702)

  • LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)

  • Layout ve LayoutModifier2'deki içsel ölçüm işlevleri, artık örtülü bir şekilde yayılmış düzen yönüyle intrinsics query API'si sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)

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

  • LayoutKoordinatları için locationInParent ve boundsInParent eklendi. (Icacdd, b/152735784)

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

  • OnPositioned ve OnChildPositioned composable işlevlerini değiştirmek için OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)

  • LayoutPadding'de negatif dolguya izin verme. Bunun yerine, negatif konum ofsetleri için LayoutOffset kullanılmalıdır. (Ifb5b1)

  • WithConstraints, LayoutDirection parametresini (I6d6f7) aldı

  • ComposeFlags.COMPOSER_PARAM işareti, oluşturma eklentisi için kod oluşturma stratejisini değiştirecek şekilde true olarak güncellendi. Yüksek düzeyde bu durum, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün bir şekilde yönetebilmesi için sonraki @Composable çağrılarına geçirilir. Bu, ikili programlarda önemli bir bozulma değişikliği olsa da, onaylı tüm oluşturma işlemlerinde kaynak düzeyinde uyumluluğun korunması gerekir. (I7971c)

  • LayoutKoordinatları, sağlananHizalamaSatırlarını bir Harita yerine bir kümeye dönüştürmek ve LayoutKoordinatlarının, bir değeri almak için bunun yerine get() operatörünü uygulamasını sağlamak amacıyla değiştirildi. Bu, değiştiricilerin her biri için yeni bir koleksiyon oluşturmadan kümedeki bir veya daha fazla değeri değiştirmesini kolaylaştırır. (I0245a)

  • Düzen koordinatlarının artık bir konum özelliği yoktur. LayoutModifier'lar, rotasyon veya ölçeklendirme düşünüldüğündeposition özelliği anlamlı değildir. Bunun yerine, geliştiriciler bir LayoutKoordinatör'den diğerine dönüşümü hesaplamak için ebeveyniniz Koordinatör'ü ve AltToLocal() işlevini kullanmalıdır.

    LayoutCoordinates, boyut özelliği 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ında kayan nokta değerleri değil tamsayı değerleri kullanılmalıdır. (I9367b)

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

  • TextDirection.Content eklendi (I48f36)

  • Kopyalama, kesme ve yapıştırma işlemlerinin düzgün şekilde gösterilmesi için Araç Çubuğu Menüsü'nü tıklayın. (Id3955)

  • Metin Alanı Seçimi için Kayan Araç Çubuğu Ekleyin. (Ie8b07)

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

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

  • Metin Alanı Seçimine HapticFeedback ekleyin. (I58050)

  • Metin Alanı Seçimi'ne Kopyalama, Kes ve Yapıştırma yöntemleri ekleyin. (Idb70b)

  • TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i kullanın (I15ff0, b/158841414)

  • Locale ve LocaleList için androidx.ui.text olan paket adı, androidx.ui.intl (I8132c) olarak değiştirildi

  • 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'nu ekleyin. (I49d53)

  • Yeni Yaşam Döngüsü SahibiAmbient özelliği artık kullanılabilir. Artık Compose kullanıcı arayüzüyle kullandığınız bir Etkinlik androidx.activity.ComponentActivity (veya AppCompatActivity) işlevini genişletmelidir. android.app.Activity'deki setContent artık kullanımdan kaldırılmıştır (Idb25a, b/153141084)

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