Pencere Yöneticisi

Jetpack WindowManager kitaplığı, uygulama geliştiricilerin yeni cihaz form faktörlerini ve çoklu pencere ortamlarını desteklemesini sağlar. Kitaplık, API 14 ve sonraki sürümler için ortak bir API yüzeyi sağlar. İlk sürümde katlanabilir cihazlar hedeflenir ancak sonraki sürümlerde daha fazla ekran türü ve pencere özelliği eklenecektir.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
6 Mart 2024 1.2.0 - - 1.3.0-alpha03

Bağımlılıkları bildirme

WindowManager'da 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.window:window:1.2.0"

    // For Java-friendly APIs to register and unregister callbacks
    implementation "androidx.window:window-java:1.2.0"

    // For RxJava2 integration
    implementation "androidx.window:window-rxjava2:1.2.0"

    // For RxJava3 integration
    implementation "androidx.window:window-rxjava3:1.2.0"

    // For testing
    implementation "androidx.window:window-testing:1.2.0"
}

Kotlin

dependencies {
    implementation("androidx.window:window:1.2.0")

    // For Java-friendly APIs to register and unregister callbacks
    implementation("androidx.window:window-java:1.2.0")

    // For RxJava2 integration
    implementation("androidx.window:window-rxjava2:1.2.0")

    // For RxJava3 integration
    implementation("androidx.window:window-rxjava3:1.2.0")

    // For testing
    implementation("androidx.window:window-testing:1.2.0")
}

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.3

Sürüm 1.3.0-alpha03

6 Mart 2024

androidx.window:window-*:1.3.0-alpha03 yayınlandı. 1.3.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • WindowSizeClassUtil yöntemini daha odaklanmış yöntemlere bölün. (Ie9292)
  • Geri yükle: WindowSizeClass#compute (I21355, b/324293374)

Hata Düzeltmeleri

  • Sağlanan bağlamın doğru bir şekilde açılmadığı kilitlenme sorununu düzeltir. (94d10ce , b/318787482)

Sürüm 1.3.0-alpha02

7 Şubat 2024

androidx.window:window-*:1.3.0-alpha02 yayınlandı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • Kendi boyut sınıflarını kullanmak isteyen geliştiriciler için esnekliği artırmak amacıyla Window Size Class API'lerinin API yüzeyinde yapılan güncellemeler.

API Değişiklikleri

  • Genişlik seçiciye yükseklik sınırlamaları ekleyin. (I23393)
  • Bir kümeden WindowSizeClass seçmek için yardımcı program işlevleri ekleyin. Geliştiricilerin kendi seçicilerini yazabilmeleri için deneysel puanlama işlevleri ekleyin. Belirli bir sınır dahilinde en geniş WindowSizeClass değerini seçmek için bir seçici uzantı işlevi ekleyin. (I0c944)
  • Özel ayrılma noktalarının eklenebilmesi için WindowSizeClass oluşturucuyu açın. (Ic1ff3)
  • Genişlik, yükseklik ve yoğunluktan beden sınıfı oluşturmak için kolaylık işlevi ekleyin. (If67f4)

Hata Düzeltmeleri

  • Kayan noktalı değer 0'a kısaltıldığında istisnayı düzeltin. (272ffac)

Sürüm 1.3.0-alpha01

15 Kasım 2023

androidx.window:window-*:1.3.0-alpha01 yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturmayla ilgili test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alınırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildirir.
  • Cihazdaki Uzantı Sürümü'nü kullanıma sunun.
  • Uygulama başına geçersiz kılma işlemleri için WindowProperties sabit değeri:
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE: Sisteme, uygulamanın kullanıcıya yönelik en boy oranı uyumluluğu geçersiz kılmasını devre dışı bıraktığını bildirir.
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE— Sisteme, uygulamanın kullanıcı en boy oranı uyumluluğu geçersiz kılma ayarları için tam ekran seçeneğini devre dışı bıraktığını bildirir

Sürüm 1.2

Sürüm 1.2.0

15 Kasım 2023

androidx.window:window-*: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

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturmayla ilgili test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alınırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildirir.
  • Cihazdaki Uzantı Sürümü'nü kullanıma sunun.

Sürüm 1.2.0-rc01

1 Kasım 2023

androidx.window:window-*:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturmayla ilgili test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alınırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildirir.
  • Cihazdaki Uzantı Sürümü'nü kullanıma sunun.

Sürüm 1.2.0-beta04

18 Ekim 2023

androidx.window:window-*:1.2.0-beta04 yayınlandı. 1.2.0-beta04 sürümü bu kayıtları içerir.

API Değişiklikleri

Sürüm 1.2.0-beta03

20 Eylül 2023

androidx.window:window-*:1.2.0-beta03 yayınlandı. 1.2.0-beta03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Doğru şekilde çalışmak için uzantıların belirli bir sürümüne ihtiyaç duyan API'lere RequiresApi kontrolleri ekleyin.
  • Cihazdaki uzantıların sürümünü kullanıma sunmak için bir API ekleyin.

API Değişiklikleri

  • Herkese açık API'lerde gerekli pencere SDK uzantısı sürümüne ek açıklama ekleyin.
    • Etkinliğe Yerleştirme bileşenindeki isXXXSupported öğesini kaldırın. (Ie3dae)
  • Cihazdaki uzantı sürümünü bildirmek için WindowSdkExtensions uygulamasını tanıtın.
    • Gerekli minimum uzantı sürümüne ek açıklama eklemek için RequiresWindowSdkExtension uygulamasını kullanın. (I05fd4)
  • WindowAreaInfo#getCapability öğesini null geçersiz hale getirir. (I17048)

Sürüm 1.2.0-beta01

26 Temmuz 2023

androidx.window:window-*:1.2.0-beta01 yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturmayla ilgili test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alınırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildirir.

API Değişiklikleri

  • API değişikliklerinin 1.3 sürümünde kararlı bir sürümle devam etmesine izin vermek için WindowArea API'lerini deneysel olarak işaretler (I857f5)
  • API dosyaları uyumluluğu engellemeye ek açıklama ekleyecek şekilde güncellendi (I8e87a, b/287516207)

Sürüm 1.2.0-alpha03

21 Haziran 2023

androidx.window:window-*:1.2.0-alpha03 yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • Kullanımdan kaldırılan API'ler API yüzeyinden kaldırılıyor.
  • Eşzamanlı ekranları desteklemek için API'ler ekleyin.
  • Zorunlu yeniden boyutlandırmayı geçersiz kılmayı devre dışı bırakmak için bir özellik ekleyin.
  • Minimum en boy oranını geçersiz kılma özelliğini devre dışı bırakmak için özellik ekleyin.
  • Etkinlik Yerleştirme ile ilgili birim testlerini desteklemek için ActivityEmbeddingRule öğesini sabitleyin.

API Değişiklikleri

  • Kullanımdan kaldırılan API'leri kaldırma (I18d39)
  • Eşzamanlı ekranlar için destek ekleyin. (Ifcbb0)

Hata Düzeltmeleri

  • Zorunlu yeniden boyutlandırmayı geçersiz kılma için devre dışı bırakma uyumlu özelliği ekleme (Ie7ab1)
  • SESSION_STATE_CONTENT_INVISIBLE uzantısını uzantılar arayüzünden kaldırır. (I6ed19)
  • Etkinlik yerleştirme çerçevesinde birim testlerini desteklemek için ActivityEmbeddingRule öğesini sabitleyin. (I8d6b6)
  • Minimum en boy oranını geçersiz kılma seçeneği için devre dışı bırakma uyumlu özelliği ekleniyor. (I66390)
  • Kullanımdan kaldırılan WindowArea API'lerini (Ieb67c) kaldırır
  • Yön isteği döngüsü özelliğini PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED olarak yeniden adlandırın. (Ie2fbd)
  • Pencere alanı oturum sabit adlarını günceller (I83675)
  • Algılandığında yön isteği döngüsünü yok sayan kapsam dışında kalma uyumlu özelliği ekleme (I0a7a2)
  • Özelliğin zaten etkin olduğunu belirtmek için WindowAreaComponent#STATUS_ACTIVE ekleyin. (I62bc3)
  • RearDisplayPresentationMode API'leri ekleyin (I0401c)
  • Kararlı kullanım için arka plan rengi API'sini kaldırın. (I34c3e)
  • Pencere Alanı API'lerini gizleyin. (I39de0)
  • SplitController içinde SplitInfo özelliğini geçersiz kılmak için yöntemler ekleyin. SplitInfo ve ActivityStack için çift oluşturmak üzere test yöntemleri ekleyin. (Icd69f)
  • ActivityRule.Builder için etiketi isteğe bağlı hale getirin. (Ib0b44)
  • RatioSplitType, ExpandContainersSplit ve HingeSplitType öğelerini kaldırın. Şu anda SplitType.
    • #splitEqually(), #expandContainers() ve #splitByHinge değerlerini SplitType SPLIT_TYPE_EQUAL, SPLIT_TYPE_EXPAND ve SPLIT_TYPE_HINGE sabit değerleriyle değiştirin
    • Eklem menteşesi bölme türünün yedek türünü ayarlama işlevini kaldırın. Geçerli cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamıyorsa üst görev kapsayıcısını eşit şekilde bölmek için yedekler kullanılır. Yedek bölme türünü özelleştirmek için SplitController#setSplitAttributesCalculator öğesini kullanın. (Ifcc59)
  • Kullanımdan kaldır: add/removeSplitCallback
    • add/removeSplitCallback dosyasını SplitControllerCallbackAdapter hedefine taşıyın
    • SplitInfo listesini almak için Flow desteğini ekleyin (I7f1b6)
  • ActivityEmbeddingController (I42e9b) için bir test kuralı ekleyin
  • ActivityOptionsCompat, ActivityEmbeddingOptions olarak yeniden adlandırılıyor (I89301)
  • Etkinlik yerleştirme özelliğinin kullanılabilir olup olmadığını belirtmek için splitSupportStatus ekleyin. (I10024)
  • DEFAULT değerini daha iyi göstermek için SplitAttributes.BackgroundColor ifadesini ekleyin. Opak olmayan animasyon arka plan renginin desteklenmediğini, opak olmayan renklerin varsayılan olarak değerlendirileceğini, yani geçerli tema penceresi arka plan renginin kullanılacağını açıklayın. (Ic6b95)
  • alwaysAllow() ve alwaysDisallow() değerlerini ALWAYS_ALLOW ve ALWAYS_DISALLOW ile değiştirin. (I3057b)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'leri ekleyin. (I92d23)
  • Test amacıyla ActivityStack oluşturmak için TestActivityStack ekleyin
    • Test amacıyla SplitInfo oluşturmak için TestSplitInfo ekleyin. (I8e779)
  • Geliştiricilerin özelleştirilmiş SplitAttributesCalculator (Id4a6e) doğrulayabilmeleri için sahte SplitAttributesCalculatorParams oluşturma yöntemi ekleyin
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) ve WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) (I66c7f) ekleyin

Sürüm 1.2.0-alpha02

7 Haziran 2023

androidx.window:window-*:1.2.0-alpha02 yayınlandı. Sürüm 1.2.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • Test API'sini, belirtilmemiş katlama özellikleri için sabit değer içerecek şekilde güncelleyin.
  • WindowLayoutInfoPublishRule ile geçersiz kılındığında Bağlam tabanlı API dahil olmak üzere tüm windowLayoutInfo değerleri geçersiz kılınır.

API Değişiklikleri

  • Belirtilmemiş merkeze katlama özelliği için sabit değer ekleyin. (I7530c)

Hata Düzeltmeleri

  • Context temelinde WindowLayoutInfo geçersiz kılma işlemlerini desteklemek için WindowLayoutInfoPublishRule uygulamasını güncelleyin. (I2037a)

Sürüm 1.2.0-alpha01

24 Mayıs 2023

androidx.window:window-*:1.2.0-alpha01 yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

Test API'lerini Etkinlik Yerleştirme ve WindowLayoutInfoTracker ile ilgili olarak stabilize edin. ActivityEmbeddingRule hizmetinin düzeyi kararlı sürüme yükseltildi. WindowMetricsCalculatorRule hizmetinin düzeyi kararlı sürüme yükseltildi. Test için FoldingFeature oluşturan yardımcı işlevler kararlı sürümüne yükseltildi.

API Değişiklikleri

  • Etkinlik yerleştirme çerçevesinde birim testlerini desteklemek için ActivityEmbeddingRule öğesini sabitleyin. (I8d6b6)
  • WindowMetrisCalculatorTestRule, JVM testleri için saplama metriklerine izin vermeye kararlıdır. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.
  • JVM testini desteklemek üzere WindowLayoutInfo için test API'lerini stabilize edin. (Ie036e)
  • Test katlama özelliği değerleri için IntRange ekleyin. (I69f7d)

Sürüm 1.1

Sürüm 1.1.0

7 Haziran 2023

androidx.window:window-*: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

Etkinlik Yerleştirme

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, uygulama manifest dosyasına <application> etiketinin boole özelliği olarak eklendi.
  • Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için isSplitSupported kullanımdan kaldırıldı ve splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak üzere iç içe yerleştirilmiş SplitController.SplitSupportStatus sınıfı eklendi.
  • SplitController, çeşitli modüller halinde yeniden düzenlendi:
    • Activity veya ActivityStack ile ilgili API'ler için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ile ilgili işlem için RuleController modülü:
    • Kaldırılan SplitController API:
    • clearRegisteredRules()
    • getSplitRules()
    • initialize()
    • registerRule()
    • unregisterRule()
    • RuleController API eklendi:
    • addRule() - Bir kural ekler veya aynı etikete sahip kuralı günceller.
    • removeRule() — Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.
    • setRules() — Bir kurallar koleksiyonu oluşturur.
    • clearRules(): Tüm kayıtlı kuralları kaldırır.
    • parseRules(): XML kural tanımlarından kuralları ayrıştırır.
  • Tüm modüller, aşağıdakiler dahil olmak üzere #getInstance() yöntemiyle başlatılacak bir bağlam gerektirir:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Görüntülü reklam en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için EmbeddingAspectRatio sınıfı eklendi.
  • Bölünmüş düzeni tanımlamak için SplitAttributes sınıfı eklendi.
  • Bölünmüş düzenleri özelleştirmek için SplitController uygulamasına SplitAttributes hesap makinesi işlevi eklendi:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule sürümündeki API güncellemeleri:
    • defaultSplitAttributes eklendi: Bir bölmenin varsayılan bölme düzenini tanımlar; splitRatio ve layoutDirection öğelerinin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin çevirisi defaultSplitAttributes diline eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanılacak şekilde değiştirildi.
    • 600 dp varsayılan değerine sahip minHeightDp eklendi.
    • minWidth, 600 dp varsayılan değerine sahip minWidthDp olarak değiştirildi.
    • minSmallestWidth, 600 dp varsayılan değerine sahip minSmallestWidthDp olarak değiştirildi.
    • ALWAYS_ALLOW varsayılan değerine sahip maxAspectRatioInHorizontal eklendi.
    • 1.4 varsayılan değerine sahip maxAspectRatioInPortrait eklendi.
    • Bitiş davranışı sabit değerlerini değiştirmek için iç içe yerleştirilmiş FinishBehavior sınıfı tanımlandı.
    • Özellik değişiklikleri, Derleyici için iç içe yerleştirilmiş SplitPairRule ve SplitPlaceholderRule sınıfına uygulandı.
  • SplitInfo#getSplitRatio() ifadesi, bölmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitAttributes() ile değiştirildi.

Pencere Düzeni

  • WindowInfoTracker için deneysel etkinlik dışı kullanıcı arayüzü bağlam desteği eklendi.
  • WindowMetricsCalculator öğesine deneysel etkinlik dışı kullanıcı arayüzü bağlamı eklendi.

Taşıma Adımları

  • Etkinlikleri bölmelerde gösterecek şekilde etkinlik yerleştirmeyi etkinleştirmek için uygulamaların PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini manifest <application> etiketine eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulamanın bölme davranışlarını önceden optimize etmesine olanak tanır.
  • SplitInfo oranı
    • Geçerli bölmenin yığın halinde olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Geçerli oranı kontrol edin: kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController taşıma işlemleri:
    • SplitController.getInstance(), SplitController.getInstance(Context) olarak değiştirildi.
    • SplitController.initialize(Context, @ResId int), RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) olarak değiştirildi.
    • SplitController.getInstance().isActivityEmbedded(Activity), ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) olarak değiştirildi.
    • SplitController.getInstance().registerRule(rule), RuleController.getInstance(Context).addRule(rule) olarak değiştirildi.
    • SplitController.getInstance().unregisterRule(rule), RuleController.getInstance(Context).removeRule(rule) olarak değiştirildi.
    • SplitController.getInstance().clearRegisteredRules(), RuleController.getInstance(Context).clearRules() olarak değiştirildi.
    • SplitController.getInstance().getSplitRules(), RuleController.getInstance(Context).getRules() olarak değiştirildi.
  • SplitRule mülk taşıma işlemi:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar şu çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith ifadesini piksel cinsinden displayMetrics#density sayısına bölebilirsiniz.
  • Bitiş davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FINISH_NEVER, FinishBehavior.NEVER olarak değiştirildi.
    • FINISH_ALWAYS, FinishBehavior.ALWAYS olarak değiştirildi.
    • FINISH_ADJACENT, FinishBehavior.ADJACENT olarak değiştirildi.
  • Düzen yönü SplitAttributes.LayoutDirection konumuna taşınmalıdır:
    • ltr, SplitAttributes.LayoutDirection.LEFT_TO_RIGHT olarak değiştirildi.
    • rtl, SplitAttributes.LayoutDirection.RIGHT_TO_LEFT olarak değiştirildi.
    • locale, SplitAttributes.LayoutDirection.LOCALE olarak değiştirildi.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio) hedefine taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemi:
    • kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. için SplitPairRule.Builder(filters, minWidth, minSmallestWidth) değişiklik
    • kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) için setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) değişikliği
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.
  • SplitPlaceholder.Builder taşıma işlemi:
    • Yalnızca filters ve placeholderIntent parametreleri var. Diğer mülkler, belirleyicilere taşınır. Ayrıntılar için "SplitpairRule.Builder taşıma işlemleri" bölümüne bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), şu şekilde değişti: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.

Sürüm 1.1.0-rc01

10 Mayıs 2023

androidx.window:window-*:1.1.0-rc01 yayınlandı. 1.1.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • ActivityEmbedding sürümünü kararlı bir API olarak yayınlayın.
  • Çeşitli hata düzeltmeleri.

Sürüm 1.1.0-beta02

5 Nisan 2023

androidx.window:window-*:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Dahili düzeltmeler ve temizleme.

Sürüm 1.1.0-beta01

22 Mart 2023

androidx.window:window-*:1.1.0-beta01 yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.

Etkinlik Yerleştirme

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, uygulama manifest dosyasına <application> etiketinin boole özelliği olarak eklendi.
  • Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için isSplitSupported kullanımdan kaldırıldı ve splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak üzere iç içe yerleştirilmiş SplitController.SplitSupportStatus sınıfı eklendi.
  • SplitController, çeşitli modüller halinde yeniden düzenlendi:
    • Activity veya ActivityStack ile ilgili API'ler için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ile ilgili işlem için RuleController modülü:
    • Kaldırılan SplitController API:
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • RuleController API eklendi:
      • addRule() - Bir kural ekler veya aynı etikete sahip kuralı günceller.
      • removeRule() — Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.
      • setRules() — Bir kurallar koleksiyonu oluşturur.
      • clearRules(): Tüm kayıtlı kuralları kaldırır.
      • `parseRules() — Kuralları XML kural tanımlarından ayrıştırır.
  • Tüm modüller, aşağıdakiler dahil olmak üzere #getInstance() yöntemiyle başlatılacak bir bağlam gerektirir:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Görüntülü reklam en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için EmbeddingAspectRatio sınıfı eklendi.
  • Bölünmüş düzeni tanımlamak için SplitAttributes sınıfı eklendi.
  • Bölünmüş düzenleri özelleştirmek için SplitController uygulamasına SplitAttributes hesap makinesi işlevi eklendi:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • Cihazda SplitAttributesCalculator API'lerinin desteklenip desteklenmediğini kontrol etmek için isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule sürümündeki API güncellemeleri:
    • defaultSplitAttributes eklendi: Bir bölmenin varsayılan bölme düzenini tanımlar; splitRatio ve layoutDirection öğelerinin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin çevirisi defaultSplitAttributes diline eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanılacak şekilde değiştirildi.
    • 600 dp varsayılan değerine sahip minHeightDp eklendi.
    • minWidth, 600 dp varsayılan değerine sahip minWidthDp olarak değiştirildi.
    • minSmallestWidth, 600 dp varsayılan değerine sahip minSmallestWidthDp olarak değiştirildi.
    • ALWAYS_ALLOW varsayılan değerine sahip maxAspectRatioInHorizontal eklendi.
    • 1.4 varsayılan değerine sahip maxAspectRatioInPortrait eklendi.
    • Bitiş davranışı sabit değerlerini değiştirmek için iç içe yerleştirilmiş FinishBehavior sınıfı tanımlandı.
    • Özellik değişiklikleri, iç içe yerleştirilmiş Builder SplitPairRule ve SplitPlaceholderRule sınıfına uygulandı.
  • SplitInfo#getSplitRatio() ifadesi, bölmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitAttributes() ile değiştirildi.

Pencere Düzeni

  • WindowInfoTracker için etkinlik dışı kullanıcı arayüzü bağlam desteği eklendi.
  • WindowMetricsCalculator öğesine etkinlik dışı kullanıcı arayüzü bağlamı eklendi.

Taşıma Adımları

  • Etkinlikleri bölmelerde gösterecek şekilde etkinlik yerleştirmeyi etkinleştirmek için uygulamaların PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini manifest <application> etiketine eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulamanın bölme davranışlarını önceden optimize etmesine olanak tanır.
  • SplitInfo oranı
    • Geçerli bölmenin yığın halinde olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Geçerli oranı kontrol edin: kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController taşıma işlemi:
    • SplitController.getInstance(), SplitController.getInstance(Context) olarak değiştirildi.
    • RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) için SplitController.initialize(Context, @ResId int) değişikliği yapıldı.
    • SplitController.getInstance().isActivityEmbedded(Activity), ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) olarak değiştirildi.
    • SplitController.getInstance().registerRule(rule), RuleController.getInstance(Context).addRule(rule) olarak değiştirildi.
    • SplitController.getInstance().unregisterRule(rule), RuleController.getInstance(Context).removeRule(rule) olarak değiştirildi.
    • SplitController.getInstance().clearRegisteredRules(), RuleController.getInstance(Context).clearRules() olarak değiştirildi.
    • SplitController.getInstance().getSplitRules(), RuleController.getInstance(Context).getRules() olarak değiştirildi.
  • SplitRule mülk taşıma işlemi:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar şu çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith ifadesini piksel cinsinden displayMetrics#density sayısına bölebilirsiniz.
  • Bitiş davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FINISH_NEVER, FinishBehavior.NEVER olarak değiştirildi.
    • FINISH_ALWAYS, FinishBehavior.ALWAYS olarak değiştirildi.
    • FINISH_ADJACENT, FinishBehavior.ADJACENT olarak değiştirildi.
  • Düzen yönü SplitAttributes.LayoutDirection konumuna taşınmalıdır:
    • ltr, SplitAttributes.LayoutDirection.LEFT_TO_RIGHT olarak değiştirildi.
    • rtl, SplitAttributes.LayoutDirection.RIGHT_TO_LEFT olarak değiştirildi.
    • locale, SplitAttributes.LayoutDirection.LOCALE olarak değiştirildi.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio) hedefine taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemi:
    • kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. için SplitPairRule.Builder(filters, minWidth, minSmallestWidth) değişiklik
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) olarak değişti
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.
  • SplitPlaceholder.Builder taşıma işlemi:
    • Yalnızca filters ve placeholderIntent parametreleri var. Diğer mülkler, belirleyicilere taşınır. Ayrıntılar için "SplitpairRule.Builder taşıma işlemleri" bölümüne bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), şu şekilde değişti: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.

Sürüm 1.1.0-alpha06

22 Şubat 2023

androidx.window:window-*:1.1.0-alpha06 yayınlandı. 1.1.0-alpha06 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Kullanıcı arayüzü bağlamından WindowLayoutInfo almanın deneysel sürümünü kullanıma sunun.

API Değişiklikleri

  • Etkinlik yerleştirme özelliğinin kullanılabilir olup olmadığını belirtmek için splitSupportStatus ekleyin. (I10024)
  • UI Context WindowLayoutInfo API'sini deneysel olarak ayarla. (I58ee0)
  • Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için RearDisplay modunu etkinleştirmek üzere WindowAreaController ve API'leri kullanıma sunar. (Iffcbf)
  • Varsayılan arka plan rengini güncelleyin. (I1ac1b)
  • SplitAttributes parametreleri ekle. (I18bdd)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'leri ekleyin. (I92d23)
  • maxAspectRatio ile ilgili API'leri iyileştirin:
    1. alwaysAllow() ve alwaysDisallow() değerlerini ALWAYS_ALLOW ve ALWAYS_DISALLOW ile değiştirin.
    2. @see API dokümanlarını, bağımsız dokümanlarla güncelleyin. (I3057b)
  • Aşağıdaki kurucular, uygulamalar tarafından çağrılmamaları gerektiğinden herkese açık API'lerden kaldırılmıştır.
    • SplitInfo kurucusu
    • ActivityStack oluşturucu (Ide534)
  • SplitRule artık maxAspectRatioInPortrait/Landscape alıyor. Yalnızca üst sınırların en boy oranı istenen maxAspectRatio değerine eşit veya daha küçük olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)
  • RuleController#parseRules değerini statik olarak değiştirin (I785df)
  • ActivityEmbedding ile ilgili API'leri iyileştirme
    1. API adlandırmasını hizalama: Birden çok örnek için ekle/kaldır seçeneğini kullanın:
    2. addRule için registerRule değişiklik
    3. removeRule için unregisterRule değişiklik
    4. ActivityRule bir bölme kuralı olmadığından getSplitRules değerini getRules ile değiştirin
    5. Birçok kural belirlemek için RuleController#setRules ekleyin
    6. Kuralla ilgili API'leri SplitController öğesinden RuleController tekil öğesine çıkarın. Bunlar:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. SplitController öğesinden #isActivityEmbedded öğesini ActivityEmbeddingController tekilliğine çıkarın. Bunlar:
    14. isActivityEmbedded
    15. SplitController#initialize öğesini kaldır XML dosyasından kural belirlemek için lütfen RuleController#parseRules ve #setRules öğelerini kullanın. Bu değişiklikten önce: SplitController.initialize(context, R.xml.static_rules) Bu değişiklikten sonra: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
    16. Artık çalışma zamanı kurallarıyla statik kuralları ayırt etmiyoruz. Bununla birlikte, statik XML kural tanımlarına veya çalışma zamanında kaydedilmiş olsalar bile tüm kuralları temizlemek için #clearRules sonuçları çağrılır. SplitController#clearRegisteredRules öğesinin eski davranışını kullanmak için lütfen XML kaynakları kimliğiyle RuleController#parseRules yöntemini çağırın ve kuralları yeniden ayarlamak için RuleController#setRules yöntemini çağırın. Bu değişiklikten önce: SplitController.getInstance(context).clearRegisteredRules() Bu değişiklikten sonra: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) (Ib3967)
  • SplitRule API'lerini iyileştirin:
    1. SplitRule için DP'de piksel yerine minimum boyutları alın.
    2. Minimum boyutları isteğe bağlı olarak almak üzere SplitRule Oluşturucu için yeniden düzenleyin. (I95f17)
  • SplitController (I42549) uygulamasını başlatmak için bir Bağlam geçirin
  • SplitRule#layoutDir öğesinin adı #layoutDirection, SplitRule Builder#setLayoutDir adı ise Builder#setLayoutDirection olarak değiştirildi. (I3f6d1)

Sürüm 1.1.0-alpha04

9 Kasım 2022

androidx.window:window-*:1.1.0-alpha04 yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • ActivityEmbedding için bir ActivityStack öğesinin boş olup olmadığını belirlemek üzere bir yöntem gösterin.
  • ActivityEmbedding API'deki deneysel API etiketleri kaldırıldı.
  • Builder yapısı tercih edilen yapı olduğundan ActivityRule oluşturucusunu gizleyin.
  • WindowMetrics üzerinde WindowInsets elde etmek için deneysel bir yöntem ekleyin.
  • Yer tutucunun tamamlanmasını önlemek için SplitPlaceholderFinishBehavior öğesini güncelleyin. Yer tutucunun tamamlanması bazı kafa karıştırıcı davranışlara neden oldu.

API Değişiklikleri

  • Eğlenceli isEmpty öğesinin yerine isEmpty öğesini herkese açık hale getirin.
  • ActivityStack parametre etkinliklerini activitiesInProcess olarak yeniden adlandırın. (Ia5055)
  • Kafa karıştırıcı olduklarından ActivityFilter#matchesClassName ve ActivityFilter#matchesClassNameOrWildCard öğelerini kaldırın.
  • Arayanın farklı filtreleri ayırt etmesini sağlamak için ActivityFilter#componentName abd ActivityFilter#intentAction ekleyin (I41f22)
  • @Deprecated API'lerini deneysel API'den (I216b3) kaldırın
  • Etkinlik Yerleştirme API'leri için @ExperimentalWindowApi politikasını kaldırın (I69ebe)
  • ActivityRule oluşturucuyu gizleyin, bunun yerine Oluşturucu'yu kullanın. (If4eb6)
  • Bir etkinliğin ActivityFilter kapsamında olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf)
  • API dosyalarını WindowMetrics ve WindowMetricsCalculatorCompat sınıflarındaki değişiklikleri yansıtacak şekilde güncelleme (I667fe)
  • ActivityEmbedding Mülkü Javadoc'unu ve sınıf adını (Ia1386) güncelleme
  • AndroidManifest.xml dosyasında kullanılacak ActivityEmbedding özellik etiketi adları ekleme (Id1ad4)
  • Yeni API SplitPlaceholderFinishBehavior ve SplitPlaceholderRule.finishPrimaryWithPlaceholder eklendi. Bu API, yer tutucu etkinliklerin ne zaman sona erdiğini ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcut SplitPlaceholderRule.finishPrimaryWithSecondary API'sinin yerini alır. (I64647)

Hata Düzeltmeleri

  • Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için RearDisplay modunu etkinleştirmek üzere WindowAreaController ve API'leri kullanıma sunar. (I388ab)

Sürüm 1.1.0-alpha03

27 Temmuz 2022

androidx.window:window-*:1.1.0-alpha03 yayınlandı. Sürüm 1.1.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • Yerleştirme kuralları için varsayılan değerleri güncelleyin.

API Değişiklikleri

  • Yerleştirme kuralı özelliklerinin varsayılan değerlerini güncelleyin. (Ic4d35)

Sürüm 1.1.0-alpha02

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha02 yayınlandı. Sürüm 1.1.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • Java ve RxJava'yı desteklemek için adaptör kitaplıklarını serbest bırakın.

Sürüm 1.1.0-alpha01

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Java ve RxJava'yı desteklemek için bağdaştırıcıları serbest bırakın

Sürüm 1.1.0-alpha01

20 Nisan 2022

androidx.window:window:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Bir uygulamanın arka plana alındığında katlama özellikleri yayınlamayı durdurmasına neden olan hata düzeltildi.
  • Deneysel ActivityEmbedding API'yi daha yakından tanıyın.

API Değişiklikleri

  • Bir etkinliğin yerleştirilip yerleştirilmediğini kontrol etmek için kullanılan herkese açık bir API. (I39eb7)

Hata Düzeltmeleri

  • Etkinlik bölümlerinde kapsayıcılar için son işlem davranışını özelleştiren API'ler ekleme (I1a1e4)
  • Etkinlik bölme kuralları için yeni bir yapılandırma seçeneği eklendi. (Iec6af)

Sürüm 1.0

Sürüm 1.0.0

26 Ocak 2022

androidx.window:window-*:1.0.0 yayınlandı. 1.0.0 sürümü bu kayıtları içerir.

1.0.0'ın temel özellikleri

  • WindowInfoTracker ve FoldingFeature üzerinden katlanabilir telefonlar için destek. WindowMetricsCalculator.

Sürüm 1.0.0-rc01

15 Aralık 2021

androidx.window:window-*:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WindowInfoTracker üzerinden katlanan telefonlar için destek eklendi.
  • Mevcut ve maksimum WindowMetrics değerini hesaplamak için yöntemler ekleyin.
  • Destekleyici test API'leri ekleyin.

Sürüm 1.0.0-beta04

17 Kasım 2021

androidx.window:window-*:1.0.0-beta04 yayınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
  • Etkinliği WindowInfoTracker için açık bir yöntem bağımlılığı haline getirin.
  • Robolectric'i kullanan geliştiricileri desteklemek üzere WindowMetricsCalculator için basit bir TestRule ekleyin.

API Değişiklikleri

  • Uzantıları çıkarın (I25a5f)
  • ActivityStack'e isBlank ekleyin (I5a4e6)
  • WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
    • java/rxjava/testing bağımlılıklarını eşleşecek şekilde güncelleyin. (I0da63)
  • Basit bir WindowMetricsCalculator için bir test kuralı ekleyin. (Ibacdb)

Sürüm 1.0.0-beta03

27 Ekim 2021

androidx.window:window-*:1.0.0-beta03 yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Deneysel Activity Embedding API'leri ekleme. Bu ilk düzen sürümü, iki Etkinliğin yan yana gösterilmesine olanak tanır.

API Değişiklikleri

  • Doğru bir şekilde sağlayamadığımız için currentWindowMetrics API'si kaldırıldı. Lütfen bunun yerine WindowMetricsCalculator (Icda5f) kullanın
  • Uzantılar API'si güncellendi. (Ica92b)
  • Etkinlikleri yerleştirmeye ve bunları ana görev penceresi içinde yan yana göstermeye olanak tanıyan yeni bir özellik için arayüz eklendi. (I5711d)
  • WindowMetrics ve WindowLayoutInfo kurucuları gizlendi, lütfen bunun yerine test API'larını kullanın. (I5a1b5)
  • Sahte WindowLayoutInfo nesneleri oluşturmak için bir API ekleyin. (I4a2fd)

Hata Düzeltmeleri

Sürüm 1.0.0-beta02

1 Eylül 2021

androidx.window:window-*:1.0.0-beta02 yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Deneysel API'lere ek açıklama eklemek için deneysel ek açıklama ekleyin. (I9f1b6)
  • Dikdörtgeni kabul eden bir test FoldingFeature oluşturmak için bir test yöntemi ekleyin. Bu, gerçek bir Etkinlik yerine Robolectric'i kullanırken test yapmayı kolaylaştıracaktır. (Id1cca)

Sürüm 1.0.0-beta01

18 Ağustos 2021

androidx.window:window-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Eski sabit değerler kaldırılıp FoldingFeature arayüzü haline getirildi.

API Değişiklikleri

  • Eski sabitleri kaldırıp FoldFeature'ı bir arayüz haline getirin. (I9a2d5)

Hata Düzeltmeleri

  • Test Core kitaplığını temel alan kitaplıklar 1.4.0 sürümüne yükseltildi ve artık Android platformu S sürümüyle çalışacak. (I88b72, b/189353863)

Sürüm 1.0.0-alfa10

4 Ağustos 2021

androidx.window:window-*:1.0.0-alpha10 yayınlandı. Sürüm 1.0.0-alpha10 bu kayıtları içerir.

Yeni Özellikler

  • WindowInfoRepo'yu WindowInfoRepository olarak yeniden adlandırın ve ilgili sınıfları / dosyaları ayarlayın.
  • Değer zaman içinde değiştiği için mevcut aralık metriklerini WindowInfoRepository'de bir Akışa dönüştürün.
  • WindowInfoRepoJavaAdapter adını WindowInfoRepoCallbackAdapter olarak değiştirin
  • Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleyin
  • Paketleri, destekledikleri özelliğe göre grup sınıflarına güncelleyin.

API Değişiklikleri

  • ActivityExt'in adını ActivityExtensions olarak değiştirin. Depo yerine Repository olarak değiştirin. (I61a16)
  • Sınıflar için paketleri güncelleme. (I23ae2)
  • WindowInfoRepo'dan (I24663) WindowMetrics'i kaldırma
  • WindowManager'ı kaldırın ve WindowInfoRepo'yu kullanın
    • WindowBackend'i dahili hale getirin. (I06d9a)
  • Pencere metriklerini Akışa dönüştürün.
    • Java bağdaştırıcısını WindowInfoRepoCallbackAdapter olarak yeniden adlandırın
    • Deneysel API'lerin kullanılmaması için callbackFlow'u kaldırın. (Ia4d15)
  • Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin.
    • occlusionMode'dan occlusionType'a (If4cff) geçin

Hata Düzeltmeleri

  • Temel kitaplığın kaldırıldığı ProGuard hatası düzeltildi.
  • WindowLayoutInfo'nun ek abonelere sunulmadığı hatayı düzeltin.
  • Yapılandırma değişikliklerinin, katlanan özellik güncellemelerini tetiklememesine yol açan hata düzeltildi.

Sürüm 1.0.0-alpha09

30 Haziran 2021

androidx.window:window-*:1.0.0-alpha09 yayınlandı. Sürüm 1.0.0-alpha09 bu kayıtları içerir.

Yeni Özellikler

  • Tam sayı sabit değerlerinden sınırsız enum sayısına geçiş.
  • Katlama özelliklerini test etmek için bir test aracı ekleyin.

API Değişiklikleri

  • Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
    • occlusionMode olan fiyatı occlusionType olarak değiştirin.

Hata Düzeltmeleri

  • Veri akışlarının birden fazla tüketicisini eklerken ilk değeri paylaşın.

Sürüm 1.0.0-alpha08

16 Haziran 2021

androidx.window:window-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WindowInfoRepository kullanırken test yapmayı kolaylaştırmak için bir test yapısı yayınlandı. DisplayFeatures ve WindowMetrics hakkında bilgi edinmek için WindowInfoRepository kullanın. (I57f66, Ida620)

Sürüm 1.0.0-alpha07

2 Haziran 2021

androidx.window:window-*:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Temel pencere kitaplığını Kotlin'e taşıyın. İleride eşzamansız verileri açığa çıkarmak için eş yordamlar ve askıya alma işlevleri kullanılır.
  • WindowInfoRepo'yu WindowMetrics'i ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak ekleyin.
  • Geri çağırmaları kaydetmek ve kaydı iptal etmek için Java dostu API'leri açığa çıkaracak yeni window-java yapısı.
  • RxJava'ya göre uyarlanmış API'leri gösterecek yeni window-rxjava2 ve window-rxjava3 yapıları.

API Değişiklikleri

  • Bağımlıları eşit şekilde sağlamak için WindowServices ekleyin.
    • Pencere düzeni bilgisini kullanmak için eş yordam tabanlı API ekleyin. (Iab70f)
  • Temel pencere yöneticisi kitaplığını Kotlin'e taşıyın. (Icca34)

Hata Düzeltmeleri

  • Özellik sınırlarını temsil edecek yeni veri sınıfı ekleyin. (I6dcd1)

Sürüm 1.0.0-alpha06

5 Mayıs 2021

androidx.window:window:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Kotlin'e taşıma işlemini başlattık ve bir sonraki sürümde tamamlayacağız.
  • DeviceState, herkese açık API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'ı kullanın.
  • Şu anda herhangi bir kullanım alanında desteklenmediğinden STATE_FLIPPED, FoldingFeature durumlarından kaldırılmıştır.
  • Kullanımdan kaldırılan diğer API'leri de kaldırdık.

API Değişiklikleri

  • Kotlin'i bağımlılık olarak ekleme.
    • Çekirdek kitaplığı Kotlin'e taşıyın. (Idd995)
  • DisplayFeature derleyici kaldırıldı. (I61fa4)
  • DeviceState herkese açık API'den kaldırıldı, bunun yerine FoldingFeature kullanın. (Id6079)
  • Uzantılardan cihaz durumu geri çağırmasını kaldırın. (I5ea83)
  • FoldingFeature'dan STATE_FLIPPED öğesini kaldırın. (I9c4e1)
  • Kullanımdan kaldırılan kayıt yöntemlerini kaldırın. (Ib381b)

Sürüm 1.0.0-alpha05

24 Mart 2021

androidx.window:window:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

FoldingFeature'a kullanışlı yöntemler ekledik. Bu sayede uygulamalar, özelliğin ayıran, kapatan özelliği ayırt edebilir ve menteşenin yönünü belirleyebilir. Ayrıca menteşe türünü de

Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırıyoruz. Eşzamanlı okuma yöntemleri, örtülü bir yarış koşulu bulunduğundan hataya açıktır. WindowLayoutInfo'da güncelleme almak için işleyicileri ve geri çağırmaları kaydedin.

API Değişiklikleri

  • FoldingFeatures ile çalışmaya yönelik kolaylık yöntemleri ekleme (Ie733f)
  • WindowManager'dan eşzamanlı okuma yöntemlerini kaldırır (I96fd4)

Sürüm 1.0.0-alpha04

10 Mart 2021

androidx.window:window:1.0.0-alpha04 yayınlandı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmamasına neden olan hatayı düzeltir. Şimdi boş bir WIndowLayoutInfo yayınlarız.
  • Uygulama arka plana alınırken menteşe durumu değişirse durumun düzgün bir şekilde güncellenmemesine neden olan hata düzeltildi. Artık eyaletin tutarlı olması gerekiyor.
  • Çalışma zamanı bağımlılıklarından gelen uyarıları yoksaymak için ProGuard dosyalarımızı güncelleyin.

Hata Düzeltmeleri

  • OEM kitaplığı eksik olduğunda boş bir değer gönderin. (Ide935)

Sürüm 1.0.0-alpha03

18 Şubat 2021

androidx.window:window:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer gönderin. Bu şekilde kitaplığı daha fazla cihazda kullanabilirsiniz. API'ler eşzamansız olduğundan, uygulamaların bir miktar savunma kodu yazması ve zaman aşımından sonra varsayılan bir değer yayması önerilir. OEM uygulamalarıyla ilgili herhangi bir garantimiz yoktur ve başlangıç değeri gecikebilir.

Hata Düzeltmeleri

  • OEM kitaplığı eksik olduğunda boş bir değer gönderin. (Ide935)

Sürüm 1.0.0-alpha02

27 Ocak 2021

androidx.window:window:1.0.0-alpha02 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • API'yi kolaylaştırmak ve hataları azaltmak için bazı API'leri kullanımdan kaldırdık. Önemli örneklerden bazıları, WindowManager'dan eşzamanlı okuma işlemlerini kaldırmak ve DeviceState'in kullanımdan kaldırılmasıdır. Eşzamanlı okuma işlemleri yarışma durumlarına yol açabilir ve hatalı kullanıcı arayüzüne sahip olabilir.

  • Görüntülü Reklam Ağı Özelliğini, ileride başka özelliklerin uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz olan FoldingFeature artık bir ekran kıvrımı veya menteşesini temsil ediyor. Bu aynı zamanda DeviceState'in yerine geçecek menteşenin durumunu da içerir.

  • WindowMetrics'i Android 11'de kullanıma sunduk. Bu özellik ile geliştiriciler, pencerelerdeki konum ve boyut gibi metrikleri (ör. ekranın ve sistem ek öğelerinin) sorgulamak için basit bir yöntem sunmuştur. Geliştiricilerin WindowMetrics'i kullanarak eski Android sürümlerini desteklemeye devam edebilmesi için API'yi bu sürümde geri bağlantılandırdık. WindowMetrics'ten WindowManager#getCurrentWindowMetrics() ve WindowManager#getmaximumWindowMetrics() API'lerinden ulaşılabilir.

API Değişiklikleri

  • Bir sonraki alfa sürümünde kaldırılacak API'leri kullanımdan kaldırın (Ib7cc4)
  • ExtensionInterface öğesini, uygunsuz Etkinlik referanslarını kabul edecek şekilde günceller. (I07ded)
  • WindowMetrics API kullanıma sunuldu. (I3ccee)
  • WindowManager'dan eşzamanlı okuma yöntemlerini kaldırma (I69983)
  • ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)

Hata Düzeltmeleri

  • Görsel bağlamları kabul etmek için ExtensionInterface API'lerini güncelleyin. (I8e827)

Harici Katkı

  • Verilere daha kolay erişmek için DeviceState ve WindowLayoutInfo öğelerini birleştirin. (Id34f4)

Sürüm 1.0.0-alpha01

27 Şubat 2020

androidx.window:window:1.0.0-alpha01 ve androidx.window:window-extensions:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir. Bu, Pencere Yöneticisi kitaplığının ilk sürümüdür.

Yeni özellikler

  • DisplayFeature: Bu yeni API, menteşe veya kıvrım gibi sürekli düz ekran yüzeylerindeki kesintileri belirler
  • DeviceState: Bu yeni API tanımlı bir duruş listesinden (ör. CLOSED, OPENED, HALF_OPENED vb.) telefonun o anki duruşunu gösterir.