Pencere Yöneticisi

Jetpack WindowManager kitaplığı uygulamayı mümkün kılar geliştiricilerin yeni cihaz form faktörlerini ve çok pencereli ortamları desteklemesini sağlayın. Kitaplık, API 14 ve sonraki sürümleri için ortak bir API yüzeyi sağlar. İlgili içeriği oluşturmak için kullanılan İlk sürüm katlanabilir cihazları hedefliyor, ancak gelecekteki sürümlerde daha fazla görüntüleme türü ve pencere özelliği içerir.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
7 Ağustos 2024 1.3.0 - - 1.4.0-alfa01

Bağımlılıkları bildirme

WindowManager'a bağımlılık eklemek için Google Maven deposunu akılda kalıcı bir yolunu sunar. Okunanlar Daha fazlası için Google'ın Maven deposu ekleyebilirsiniz.

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

Eski

dependencies {
    implementation "androidx.window:window:1.3.0"

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

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

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

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

Kotlin

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

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

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

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

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

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Sürüm 1.4

Sürüm 1.4.0-alpha01

7 Ağustos 2024

androidx.window:window-*:1.4.0-alpha01 yayınlandı. Sürüm 1.4.0-alpha01 bu kaydetmeleri içerir.

Yeni Özellikler

  • ActivityStack Pinning, uygulamaların bir kapsayıcıdaki içeriği sabitlemesine ve gezinmenin diğer kapsayıcıdan ayrılmasına olanak tanır.
  • Etkileşimli Bölme, uygulamaların bölünmüş bir sunuda iki etkinlik arasında sabit veya sürüklenebilir bir ayırıcı olarak göstermesine olanak tanır.
  • Tam Ekran İletişim Kutusu Karartma, uygulamaların iletişim kutusu karartma alanını belirtmesine olanak tanır. Bu şekilde uygulama, görev penceresinin tamamını karartabilir veya yalnızca iletişim kutusunu gösteren kapsayıcıyı karartabilir.
  • Yerleştirilmiş Etkinlik Penceresi Bilgi Geri Çağırması, uygulamaların yerleşik etkinlik penceresiyle ilgili güncellemeleri sürekli olarak almasına olanak tanır.
  • Animasyon Arka Planı Yerleştirilmiş, uygulamaların animasyon arka planını belirtmesine olanak tanıyarak ActivityEmbedding kullanıldığında geçiş animasyonu kalitesini artırır.
  • Geliştirilmiş ActivityStack Yönetimi, ActivityEmbedding kullanıldığında uygulamaların ActivityStacks üzerinde daha fazla kontrol sahibi olmasına olanak tanır. Örneğin:
  • Belirli bir ActivityStack ile ilgili etkinlik başlatma
  • ActivityStack tamamlama

API Değişiklikleri

  • Yeni bir API WindowInfoTracker#supportedPostures:

    • Cihazın katlanabilir cihazlar için TableTop modunu destekleyip desteklemediğini belirleyen bir API. WindowAreaSessionSunumer#getWindow ekler
  • ActivityStack sabitlemesini desteklemek için API'ler ekleyin:

    • SplitPinRule sınıf
    • SplitController#pinTopActivityStack
    • SplitController#unpinTopActivityStack
  • Etkileşimli ayırıcıyı etkinleştirmek ve yapılandırmak için API'ler ekleyin

    • DividerAttributes sınıf
    • SplitAttributes.Builder#setDividerAttributes
  • İletişim kutuları için EmbeddingConfiguration ve DimAreaBehavior ayarlarını yapmak üzere API'ler ekleyin

    • EmbeddingConfiguration sınıf
    • DimAreaBehavior sınıf
    • ActivityEmbeddingController#setEmbeddingConfiguration
  • Yerleşik etkinlik aralığı bilgi güncellemelerini almak için API'ler ekleyin

    • EmbeddedActivityWindowInfo sınıf
    • ActivityEmbeddingController#embeddedActivityWindowInfo
  • Yerleştirme animasyonu arka planını ayarlamak için API'ler ekleyin

    • EmbeddingAnimationBackground
    • SplitAttributes.Builder#setAnimationBackground
  • ActivityStacks işlemini tamamlamak için API'ler ekleyin

    • ActivityEmbeddingController#finishActivityStacks
  • ActivityStack lansmanını ayarlamak için API'leri ekleyin

    • ActivityEmbeddingOptions#setLaunchingActivityStack
  • Aşağıdaki API'ler kararlı olup artık deneysel değildir:

    • ActivityEmbeddingController#invalidateVisibleActivityStacks (SplitController#inValidateTopvisibleSplitAttributes konumundan taşındı)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#updateSplitAttributes
  • 1.4 için API'leri ekleyin. (I56774)

Hata Düzeltmeleri

  • Belirli cihazlarda, oturum etkin olduğunda ETKİN yerine UNAVAILABLE hatası döndürülmesini sağlayan hata düzeltildi.
  • Kararsız API desteği nedeniyle, vendorApiLevel/2 değerine sahip cihazlarda transferActivityToWindowArea desteğini kaldırır.
  • Etkinlik Yerleştirme sürüklenebilir ayırıcı için tam ekrana sürüklemeyi etkinleştirmek üzere API'yi tanıtın. (I645c9)
  • Uygulamaların SplitAttributes için animasyon parametreleri aracılığıyla ActivityEmbedding animasyonlarını devre dışı bırakmasına izin ver. (Idc01a)
  • Bu durum, AGP 7.3 veya sonraki bir sürümle R8 kullanılırken (ör. R8 sürüm 3.3) ve AGP 8.1 veya sonraki sürümler kullanılırken tüm derlemeler (ör. D8 sürümü 8.1) için API modellemesi aracılığıyla otomatik olarak gerçekleştirildiğinden, yeni platform API'lerine erişimin manuel olarak özetlenmesi kaldırıldı. AGP kullanmayan müşterilerin D8 sürümüne 8.1 veya daha yeni bir sürüme geçmeleri önerilir. Daha fazla bilgi için bu makaleyi inceleyin. (Ia60e0, b/345472586)
  • Cihazın animasyon geçişlerinde kullanabilmesi için uzantıların SplitAttributes için animasyon parametreleri almasına izin verin. (Iede00)
  • Yer paylaşımı API'lerini gizle (Ic4251)
  • Bölme için sabit veya sürüklenebilir ayırıcıyı yapılandırmak için API'leri kullanın (Ia7a78)
  • Yoğunluk özelliği WindowMetrics öğesine eklendi (Id6723)
  • SupportedPostures metriğini almak için API ekleyin. (If557a)
  • setLaunchingActivityStack adresini deneysel API'den (I191cf) kaldırın
  • ActivityEmbeddingController#embeddedActivityWindowInfo (I24312) ile tanışın
  • #getToken öğesini kullanımdan kaldırın ve #getActivityStackToken (Ie0471) öğesini ekleyin
  • embeddedActivityWindowInfo akış API'si (Ida77f) için geri çağırma bağdaştırıcısını tanıtın
  • yer paylaşımlı akış API'si (I7264f) için geri çağırma adaptörü ekleme
  • Test için extensionsVersion politikasını geçersiz kılmak için WindowSdkExtensionsRule özelliğini kullanın. (Ifb928)
  • - ActivityOptionsCompat kullanımlarıyla uyumlu olması için #setLaunchingActivityStack paketini Paket'e taşıyın.
    • Kullanıcılar, ActvityOptions yerine activityOptions.toBundle öğesini geçmelidir.
    • #setLaunchingActivityStack(Activity) öğesini kaldır Kullanıcılar, ActivityStack almak için ActivityEmbeddingController#getActivityStac(Activity) öğesini kullanmalı ve ActivityStack öğesini #setLaunchingActivityStack hesabına aktarmalıdır. (Ie0ccc)
  • - WM Jetpack ve uzantılar arasında iletişim kurmak için tanımlayıcı olarak ActivityStack.Token ve SpltInfo.Token kullanın.
    • IBinder yerine Token'ı almak/döndürmek için API'leri kullanımdan kaldırın/değiştirin. (I12b24)
  • - ActivityEmbeddingController#invalidateVisibleActivityStacks ile tanışın
    • Bu özellik #invalidateVisibleActivityStacks (I02ef5) ile birleştirilmiş olduğundan SplitController#invalidateTopVisibleSplitAttributes öğesini kaldırın
  • - Yerleştirme yapılandırmasını ayarlamak için API ekleme. (I59a4a)
  • - En iyi ActivityStack androidx.Window API'si ekleme/sabitlemeyi kaldırma
    • Demo uygulama, en üstteki ActivityStack cihazı sabitlemesine/sabitlemesini kaldırmaya izin verecek şekilde güncelleniyor (I24dd3)
  • #finishActivityStacks ve ActivityEmbeddingOptions öğelerini yeniden ekleyin (Ic1ab3)
  • Kararsız API'leri kaldırın. (Ibc534, b/302380585)

Sürüm 1.3

Sürüm 1.3.0

29 Mayıs 2024

androidx.window:window-*:1.3.0 yayınlandı. Sürüm 1.3.0 bu taahhütleri içerir.

1.2.0'dan bu yana önemli değişiklikler

  • Pencere Boyutu Sınıfları için Kotlin Çoklu Platform desteği.

Sürüm 1.3.0-rc01

14 Mayıs 2024

WindowManager Jetpack 1.3, WindowSizeClass özellikleri için Kotlin Çoklu Platform desteği ve birden fazla hata düzeltmesi sunar.

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

Sürüm 1.3.0-beta02

1 Mayıs 2024

androidx.window:window-*:1.3.0-beta02 yayınlandı. Sürüm 1.3.0-beta02 bu taahhütleri içerir.

API Değişiklikleri

  • Özel WindowSizeClass oluşturma ve kullanma desteği kaldırıldı. (Id1143)

Hata Düzeltmeleri

  • ProGuard'ın belirli cihaz uygulamalarında bazı dosyaları kaldırmasından kaynaklanan KotlinReflectionInternalError düzeltildi. (I01b02)

Sürüm 1.3.0-beta01

3 Nisan 2024

androidx.window:window-*:1.3.0-beta01 yayınlandı. Sürüm 1.3.0-beta01 bu taahhütleri içerir.

Sürüm 1.3.0-alpha03

6 Mart 2024

androidx.window:window-*:1.3.0-alpha03 yayınlandı. Sürüm 1.3.0-alpha03 bu kaydetmeleri içerir.

API Değişiklikleri

  • WindowSizeClassUtil verilerini 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 ş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ı. 1.3.0-alpha02 sürümü bu kaydetmeleri 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'lerin API yüzeyinde yapılan güncellemeler.

API Değişiklikleri

  • Genişlik seçiciye yükseklik kısıtlamaları ekleyin. (I23393)
  • Bir kümeden WindowSizeClass seçmek için yardımcı program fonksiyonları ekleyin. Geliştiricilerin kendi seçicilerini yazabilmeleri için deneysel puanlama işlevleri ekleyin. Belirli bir sınır içindeki 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 boyut 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 oluşan istisnayı düzelt. (272ffac)

Sürüm 1.3.0-alpha01

15 Kasım 2023

androidx.window:window-*:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma için kullanılan test API'leri artık kararlı durumda.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule, artık UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, özellik verilerinin UiContext parametrelere katlandığını rapor ediyor.
  • Cihazda Uzantı Sürümü'nü gösterin.
  • Kullanıcı başına uygulama başına geçersiz kılma işlemleri için WindowProperties sabit değer:
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE — Bilgileri bildirir. Uygulama, kullanıcıya yönelik en boy oranı uyumluluğunu devre dışı bıraktığı sistemde geçersiz kılmayı deneyin.
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE - Bilgilendirme Uygulamanın, kullanıcının tam ekran seçeneğini devre dışı bıraktığı sistem en boy oranı uyumluluğunu geçersiz kılma ayarları

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 kaydetmeleri içerir.

1.1.0'dan bu yana önemli değişiklikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma için kullanılan test API'leri artık kararlı durumda.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule, artık UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, özellik verilerinin UiContext parametrelere katlandığını rapor ediyor.
  • Cihazda Uzantı Sürümü'nü gösterin.

Sürüm 1.2.0-rc01

1 Kasım 2023

androidx.window:window-*:1.2.0-rc01 yayınlandı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma için kullanılan test API'leri artık kararlı durumda.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule, artık UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, özellik verilerinin UiContext parametrelere katlandığını rapor ediyor.
  • Cihazda Uzantı Sürümü'nü gösterin.

Sürüm 1.2.0-beta04

18 Ekim 2023

androidx.window:window-*:1.2.0-beta04 yayınlandı. Sürüm 1.2.0-beta04 bu kaydetmeleri 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ı. Sürüm 1.2.0-beta03 bu kaydetmeleri içerir.

Yeni Özellikler

  • Düzgün çalışması için uzantıların belirli bir sürümüne ihtiyaç duyan API'lere yönelik RequiresApi kontrolleri ekleyin.
  • Cihazdaki uzantı sürümünü göstermek için bir API ekleyin.

API Değişiklikleri

  • Herkese açık API'lerde gerekli pencere SDK'sı uzantısı sürümüne ek açıklama ekleyin.
    • Etkinlik Yerleştirme bileşeninden isXXXSupported öğesini kaldırın. (Ie3dae)
  • Uzantı sürümünü cihazda bildirmek için WindowSdkExtensions özelliğini kullanın.
    • Gereken en düşük uzantı sürümüne açıklama eklemek için RequiresWindowSdkExtension özelliğini kullanın. (I05fd4)
  • WindowAreaInfo#getCapability değerini null olamaz. (I17048)

Sürüm 1.2.0-beta01

26 Temmuz 2023

androidx.window:window-*:1.2.0-beta01 yayınlandı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma için kullanılan test API'leri artık kararlı durumda.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule, artık UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, özellik verilerinin UiContext parametrelere katlandığını rapor ediyor.

API Değişiklikleri

  • 1.3'teki (I857f5) kararlı bir sürümde API değişikliklerinin devam etmesini sağlamak için WindowArea API'yi deneysel olarak işaretler
  • API dosyaları, uyumluluk engellemesine 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ı. 1.2.0-alpha03 sürümü bu kaydetmeleri 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ırma geçersiz kılmasını devre dışı bırakmak için mülk ekleyin.
  • Minimum en boy oranı geçersiz kılmasını devre dışı bırakmak için mülk ekleyin.
  • Etkinlik Yerleştirme ile ilgili birim testlerini desteklemek için ActivityEmbeddingRule politikasını sabitleyin.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Yeniden boyutlandırmayı geçersiz kılmaya zorlamak için devre dışı bırakma uyumlu özelliği ekleme (Ie7ab1)
  • Uzantılar arayüzünden SESSION_STATE_CONTENT_INVISIBLE öğesini kaldırır. (I6ed19)
  • Etkinlik yerleştirme işleminde birim testini desteklemek için ActivityEmbeddingRule öğesini sabitleyin. (I8d6b6)
  • Minimum en boy oranı geçersiz kılması 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ı oturumu sabit adlarını günceller (I83675)
  • Algılandığında yön isteği döngüsünü yoksayan devre dışı bırakma uyumlu özelliği ekleme (I0a7a2)
  • Özelliğin zaten etkin olduğunu belirtmek için WindowAreaComponent#STATUS_ACTIVE ekleyin. (I62bc3)
  • RearDisplayPresentationMode API'leri ekleme (I0401c)
  • Kararlılık için arka plan rengi API'sini kaldırın. (I34c3e)
  • Pencere Alanı API'lerini gizle (I39de0)
  • SplitController içindeki SplitInfo parametresini geçersiz kılacak yöntemler ekleyin. SplitInfo ve ActivityStack için ikili değer oluşturmak üzere test yöntemleri ekleyin. (Icd69f)
  • ActivityRule.Builder için etiketi isteğe bağlı hale getirin. (Ib0b44)
  • RatioSplitType, ExpandContainersSplit ve HingeSplitType kaldırılır. Şu anda SplitType.
    • #splitEqually(), #expandContainers() ve #splitByHinge değerlerini sabit SplitType SPLIT_TYPE_EQUAL, SPLIT_TYPE_EXPAND ve SPLIT_TYPE_HINGE olarak değiştirin
    • Menteşe bölme türünün yedek türünü ayarlama işlevini kaldırın. Mevcut cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamazsa üst görev kapsayıcıyı eşit şekilde bölmek için yedek olarak kullanılır. Yedek bölme türünü özelleştirmek için SplitController#setSplitAttributesCalculator kullanın. (Ifcc59)
  • add/removeSplitCallback öğesini kullanımdan kaldırın
    • add/removeSplitCallback dosyayı SplitControllerCallbackAdapter klasörüne taşıyın
    • SplitInfo listesini edinmek için Flow desteği ekleyin (I7f1b6)
  • ActivityEmbeddingController (I42e9b) için bir test kuralı ekleyin
  • ActivityOptionsCompat, ActivityEmbeddingOptions (I89301) olarak yeniden adlandırılıyor
  • Etkinlik yerleştirme özelliğinin kullanılıp kullanılamadığını belirtmek için splitSupportStatus ekleyin. (I10024)
  • DEFAULT değerini daha iyi temsil etmek için SplitAttributes.BackgroundColor özelliğini kullanın. Opak olmayan animasyon arka plan renginin desteklenmediğini ve bu nedenle opak olmayan renklerin varsayılan olarak değerlendirileceğini, yani geçerli tema pencere 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'ler ekleyin. (I92d23)
  • Test için ActivityStack oluşturmak üzere TestActivityStack ekleyin
    • Test için SplitInfo oluşturmak üzere TestSplitInfo ekleyin. (I8e779)
  • Geliştiricilerin özelleştirilmiş SplitAttributesCalculator (Id4a6e) bilgilerini doğrulayabilmesi için sahte SplitAttributesCalculatorParams oluşturmanın bir yolunu ekleyin
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) ve WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) ekleyin (I66c7f)

Sürüm 1.2.0-alpha02

7 Haziran 2023

androidx.window:window-*:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Test API'sini, belirtilmemiş katlama özellikleri için sabit bir değere sahip olacak şekilde güncelleyin.
  • WindowLayoutInfoPublishRule ile geçersiz kılma, Bağlam tabanlı API de dahil olmak üzere tüm windowLayoutInfo değerlerini geçersiz kılar.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Context tabanlı WindowLayoutInfo temelli geçersiz kılmaları 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 kaydetmeleri içerir.

Yeni Özellikler

Etkinlik Yerleştirme ve WindowLayoutInfoTracker ile ilgili test API'lerini sabitleyin. ActivityEmbeddingRule, kararlı düzeye yükseltildi. WindowMetricsCalculatorRule, kararlı düzeye yükseltildi. Test için FoldingFeature oluşturmayı sağlayan yardımcı işlevler kararlı sürüme yükseltildi.

API Değişiklikleri

  • Etkinlik yerleştirme işleminde birim testini desteklemek için ActivityEmbeddingRule öğesini sabitleyin. (I8d6b6)
  • WindowMetrisCalculatorTestRule, JVM testleri için saplama metriklerine izin vererek stabildir. Doğru sonuçlar için emülatör kullanmanızı öneririz.
  • JVM testini desteklemek için WindowLayoutInfo test API'lerini sabitleyin. (Ie036e)
  • Katlama özelliğini test etmek 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 kaydetmeleri içerir.

1.0.0'dan bu yana önemli değişiklikler

Etkinlik Yerleştirme

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, uygulama manifestindeki <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 yerine splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak amacıyla iç içe yerleştirilmiş SplitController.SplitSupportStatus sınıfı eklendi.
  • SplitController, birkaç modülde yeniden düzenlendi:
    • Activity veya ActivityStack ile ilgili API için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ilgili işlem için RuleController modülü:
    • SplitController API kaldırıldı:
    • 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 kural 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 bir bağlamın başlatılmasını gerektirir:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Ekran en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için EmbeddingAspectRatio sınıfı eklendi.
  • Bölme düzenini tanımlamak için SplitAttributes sınıfı eklendi.
  • Bölme düzenlerini özelleştirmek için SplitController ürününe 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 ürününde API güncellemeleri:
    • Eklendi: defaultSplitAttributes — Bir bölmenin varsayılan bölme düzenini tanımlar; splitRatio ve layoutDirection öğelerinin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin defaultSplitAttributes diline çevirisi eklendi.
    • Piksel yerine yoğunluktan bağımsız pikseller (dp) kullanmak için minimum boyut tanımları değiştirildi.
    • Varsayılan değer 600 dp olan minHeightDp eklendi.
    • minWidth, 600 dp varsayılan değerle minWidthDp olarak değiştirildi.
    • minSmallestWidth, 600 dp varsayılan değerle minSmallestWidthDp olarak değiştirildi.
    • maxAspectRatioInHorizontal, varsayılan ALWAYS_ALLOW değeriyle eklendi.
    • Varsayılan değer 1.4 ile maxAspectRatioInPortrait eklendi.
    • Bitiş davranışı sabitlerinin yerini alacak FinishBehavior iç içe yerleştirilmiş sınıf tanımlandı.
    • Özellik değişiklikleri, Oluşturucu iç içe yerleştirilmiş SplitPairRule ve SplitPlaceholderRule sınıfına uygulandı.
  • SplitInfo#getSplitRatio(), bölünmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitAttributes() ile değiştirildi.

Pencere Düzeni

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

Taşıma Adımları

  • Bölümlerdeki etkinlikleri görüntülemek üzere etkinlik yerleştirmeyi etkinleştirmek için uygulamaların manifest <application> etiketine PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Böylece sistem, bölünme davranışlarını uygulama için önceden optimize edebilir.
  • SplitInfo oran
    • Mevcut bölmenin yığın halinde olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Mevcut 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(Context) için SplitController.getInstance() değişiklik.
    • RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) için SplitController.initialize(Context, @ResId int) değişiklik.
    • ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) için SplitController.getInstance().isActivityEmbedded(Activity) değişiklik.
    • RuleController.getInstance(Context).addRule(rule) için SplitController.getInstance().registerRule(rule) değişiklik.
    • RuleController.getInstance(Context).removeRule(rule) için SplitController.getInstance().unregisterRule(rule) değişiklik.
    • RuleController.getInstance(Context).clearRules() için SplitController.getInstance().clearRegisteredRules() değişiklik.
    • RuleController.getInstance(Context).getRules() için SplitController.getInstance().getSplitRules() değişiklik.
  • SplitRule mülk taşıma işlemi:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar aşağıdaki çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith değerini piksel cinsinden displayMetrics#density değerine bölün.
  • Bitiş davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FinishBehavior.NEVER için FINISH_NEVER değişiklik.
    • FinishBehavior.ALWAYS için FINISH_ALWAYS değişiklik.
    • FinishBehavior.ADJACENT için FINISH_ADJACENT değişiklik.
  • Düzen yönü SplitAttributes.LayoutDirection öğesine taşınmalıdır:
    • SplitAttributes.LayoutDirection.LEFT_TO_RIGHT için ltr değişiklik.
    • SplitAttributes.LayoutDirection.RIGHT_TO_LEFT için rtl değişiklik.
    • SplitAttributes.LayoutDirection.LOCALE için locale değişiklik.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio) hesabına taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemi:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth) değişikliği kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) şu şekilde değişiyor: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • 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 vardır. 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 numaralandırma 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ı. Sürüm 1.1.0-rc01 bu kaydetmeleri 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ı. Sürüm 1.1.0-beta02 bu kaydetmeleri içerir.

Yeni Özellikler

  • Dahili düzeltmeler yapın ve yer açın.

Sürüm 1.1.0-beta01

22 Mart 2023

androidx.window:window-*:1.1.0-beta01 yayınlandı. Sürüm 1.1.0-beta01 bu kaydetmeleri içerir.

Etkinlik Yerleştirme

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, uygulama manifestindeki <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 yerine splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak amacıyla iç içe yerleştirilmiş SplitController.SplitSupportStatus sınıfı eklendi.
  • SplitController, birkaç modülde yeniden düzenlendi:
    • Activity veya ActivityStack ile ilgili API için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ilgili işlem için RuleController modülü:
    • SplitController API kaldırıldı:
      • 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 kural 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 bir bağlamın başlatılmasını gerektirir:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Ekran en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için EmbeddingAspectRatio sınıfı eklendi.
  • Bölme düzenini tanımlamak için SplitAttributes sınıfı eklendi.
  • Bölme düzenlerini özelleştirmek için SplitController ürününe SplitAttributes hesap makinesi işlevi eklendi:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • Cihazda SplitAttributesCalculator API'lerin desteklenip desteklenmediğini kontrol etmek için isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule ürününde API güncellemeleri:
    • Eklendi: defaultSplitAttributes — Bir bölmenin varsayılan bölme düzenini tanımlar; splitRatio ve layoutDirection öğelerinin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin defaultSplitAttributes diline çevirisi eklendi.
    • Piksel yerine yoğunluktan bağımsız pikseller (dp) kullanmak için minimum boyut tanımları değiştirildi.
    • Varsayılan değer 600 dp olan minHeightDp eklendi.
    • minWidth, 600 dp varsayılan değerle minWidthDp olarak değiştirildi.
    • minSmallestWidth, 600 dp varsayılan değerle minSmallestWidthDp olarak değiştirildi.
    • maxAspectRatioInHorizontal, varsayılan ALWAYS_ALLOW değeriyle eklendi.
    • maxAspectRatioInPortrait, varsayılan 1.4 değeriyle eklendi.
    • Bitiş davranışı sabitlerinin yerini alacak FinishBehavior iç içe yerleştirilmiş 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(), bölünmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitAttributes() ile değiştirildi.

Pencere Düzeni

  • WindowInfoTracker ürününe 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ı

  • Bölümlerdeki etkinlikleri görüntülemek üzere etkinlik yerleştirmeyi etkinleştirmek için uygulamaların manifest <application> etiketine PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Böylece sistem, bölünme davranışlarını uygulama için önceden optimize edebilir.
  • SplitInfo oran
    • Mevcut bölmenin yığın halinde olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Mevcut 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(Context) için SplitController.getInstance() değişiklik.
    • SplitController.initialize(Context, @ResId int) değişikliği RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).
    • ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) için SplitController.getInstance().isActivityEmbedded(Activity) değişiklik.
    • RuleController.getInstance(Context).addRule(rule) için SplitController.getInstance().registerRule(rule) değişiklik.
    • RuleController.getInstance(Context).removeRule(rule) için SplitController.getInstance().unregisterRule(rule) değişiklik.
    • RuleController.getInstance(Context).clearRules() için SplitController.getInstance().clearRegisteredRules() değişiklik.
    • RuleController.getInstance(Context).getRules() için SplitController.getInstance().getSplitRules() değişiklik.
  • SplitRule mülk taşıma işlemi:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar aşağıdaki çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith değerini piksel cinsinden displayMetrics#density değerine bölün.
  • Bitiş davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FinishBehavior.NEVER için FINISH_NEVER değişiklik.
    • FinishBehavior.ALWAYS için FINISH_ALWAYS değişiklik.
    • FinishBehavior.ADJACENT için FINISH_ADJACENT değişiklik.
  • Düzen yönü SplitAttributes.LayoutDirection öğesine taşınmalıdır:
    • SplitAttributes.LayoutDirection.LEFT_TO_RIGHT için ltr değişiklik.
    • SplitAttributes.LayoutDirection.RIGHT_TO_LEFT için rtl değişiklik.
    • SplitAttributes.LayoutDirection.LOCALE için locale değişiklik.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio) hesabına taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemi:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth) değişikliği kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) şu şekilde değişiyor: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • 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 vardır. 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 numaralandırma 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 kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Etkinlik yerleştirme özelliğinin kullanılıp kullanılamadığı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 sunar. (Iffcbf)
  • Varsayılan arka plan rengini güncelleyin. (I1ac1b)
  • SplitAttributes parametre ekle. (I18bdd)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'ler ekleyin. (I92d23)
  • maxAspectRatio etrafındaki API'leri iyileştirin:
    1. alwaysAllow() ve alwaysDisallow() değerlerini ALWAYS_ALLOW ve ALWAYS_DISALLOW ile değiştirin.
    2. @see API'sini bağımsız dokümanlarla güncelleyin. (I3057b)
  • Aşağıdaki oluşturucular, uygulamalar tarafından çağrılmamaları gerektiğinden herkese açık API'lerden kaldırıldı.
    • SplitInfo oluşturucu
    • ActivityStack oluşturucu (Ide534)
  • SplitRule şu anda maxAspectRatioInPortrait/Landscape alıyor. Yalnızca üst sınırların en boy oranı istenen maxAspectRatio değerine eşit olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)
  • RuleController#parseRules değerini statik (I785df) olacak şekilde değiştirin
  • ActivityEmbedding ile ilgili API'leri iyileştirin
    1. API adlandırmasını uyumlu hale getirin: Birden çok örnek için ekleme/kaldırma özelliğini kullanın:
    2. addRule için registerRule değişiklik
    3. removeRule için unregisterRule değişiklik
    4. ActivityRule bölme kuralı olmadığından getSplitRules değerini getRules ile değiştirin
    5. Bir dizi kural belirlemek için RuleController#setRules ekleyin
    6. SplitController öğesinden, RuleController kimlikli tekil API'ye kuralla ilgili API'leri ayıklayın. :
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. SplitController yolundan ActivityEmbeddingController teklisine #isActivityEmbedded ayıklayın. :
    14. isActivityEmbedded
    15. SplitController#initialize öğesini kaldır XML dosyasından kural ayarlamak için lütfen RuleController#parseRules ve #setRules 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 statik kuralları çalışma zamanı kurallarıyla ayırt etmeyiz. Bununla birlikte, statik XML kural tanımlarıyla veya çalışma zamanında kayıtlı olmalarına bakılmaksızın tüm kuralları temizlemek için #clearRules sonuçlarının çağrılması. Eski SplitController#clearRegisteredRules davranışını kullanmak için lütfen XML kaynak kimliği ile 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 pikseller yerine DP'deki minimum boyutları alın.
    2. SplitRule Builder'ın minimum boyutları isteğe bağlı olarak alması için yeniden düzenleyin. (I95f17)
  • SplitController öğesini başlatmak için bir bağlam iletme (I42549)
  • SplitRule#layoutDir adlı dosya #layoutDirection ve SplitRule Builder#setLayoutDir adlı dosya Builder#setLayoutDirection olarak yeniden adlandırıldı. (I3f6d1)

Sürüm 1.1.0-alpha04

9 Kasım 2022

androidx.window:window-*:1.1.0-alpha04 yayınlandı. 1.1.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • ActivityEmbedding için ActivityStack öğesinin boş olup olmadığını belirlemek üzere bir yöntem sunun.
  • Deneysel API etiketleri ActivityEmbedding API'lerden kaldırıldı.
  • Oluşturmanın tercih edilen yolu Builder olduğundan ActivityRule oluşturucuyu gizleyin.
  • WindowMetrics üzerinde WindowInsets öğesini almak için deneysel bir yöntem ekleyin.
  • Yer tutucunun tamamlanmasını önlemek için SplitPlaceholderFinishBehavior uygulamasını güncelleyin. Yer tutucunun tamamlanması bazı kafa karıştırıcı davranışlara neden oldu.

API Değişiklikleri

  • Eğlenceli isEmpty öğesinin yerini almak için isEmpty değerini herkese açık hale getirin.
  • ActivityStack parametre etkinliklerini activitiesInProcess olarak yeniden adlandırın. (Ia5055)
  • Kafa karıştırıcı oldukları için ActivityFilter#matchesClassName ve ActivityFilter#matchesClassNameOrWildCard öğelerini kaldırın.
  • Arayanın farklı filtreleri (I41f22) ayırt etmesine izin vermek için ActivityFilter#componentName abd ActivityFilter#intentAction ekleyin
  • Deneysel API'den (I216b3) @Deprecated API'lerini kaldırın
  • Etkinlik Yerleştirme API'leri için @ExperimentalWindowApi öğesini kaldırın (I69ebe)
  • ActivityRule oluşturucuyu gizle, 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 (I667fe) değişiklikleri yansıtacak şekilde güncelleme
  • ActivityEmbedding Mülkü Javadoc'unu ve sınıf adını güncelleyin (Ia1386)
  • AndroidManifest.xml dosyasında (Id1ad4) kullanılacak ActivityEmbedding özellik etiketi adları ekleniyor
  • Yeni SplitPlaceholderFinishBehavior ve SplitPlaceholderRule.finishPrimaryWithPlaceholder API'si eklenen bu API, yer tutucu etkinliklerinin ne zaman sona ereceğini ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcut SplitPlaceholderRule.finishPrimaryWithSecondary'nin 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 sunar. (I388ab)

Sürüm 1.1.0-alpha03

27 Temmuz 2022

androidx.window:window-*:1.1.0-alpha03 yayınlandı. 1.1.0-alpha03 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Yerleştirme kuralı özellikleri için varsayılan değerleri güncelleyin. (Ic4d35)

Sürüm 1.1.0-alpha02

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha02 yayınlandı. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Java ve RxJava'yı desteklemek için bağdaştırıcı kitaplıklarını yayınlayın.

Sürüm 1.1.0-alpha01

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

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

Sürüm 1.1.0-alpha01

20 Nisan 2022

androidx.window:window:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Bir uygulamayı arka plana almanın, katlama özelliklerini göstermeyi durdurmasına neden olan hata düzeltildi.
  • Deneysel ActivityEmbedding API'yi genişletin.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Etkinlik bölümlerindeki (I1a1e4) kapsayıcılar için bitirme davranışını özelleştiren API'ler ekleyin
  • 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 kaydetmeleri içerir.

1.0.0'ın temel özellikleri

  • WindowInfoTracker ve FoldingFeature cihazlarda katlanabilir telefonlar için destek. Mevcut WindowMetrics'in hesaplanmasına yardımcı olmak için WindowMetricsCalculator.

Sürüm 1.0.0-rc01

15 Aralık 2021

androidx.window:window-*:1.0.0-rc01 yayınlandı. Sürüm 1.0.0-rc01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Telefonları WindowInfoTracker aracılığıyla katlama desteği ekleyin.
  • 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ı. Sürüm 1.0.0-beta04 bu kaydetmeleri 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 için basit bir WindowMetricsCalculator için bir TestRule ekleyin.

API Değişiklikleri

  • Uzantıları ayıklama (I25a5f)
  • ActivityStack'e isBlank? (I5a4e6) eklendi
  • WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
    • Java/rxjava/test 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ı. Sürüm 1.0.0-beta03 bu kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • currentWindowMetrics API'yi doğru bir şekilde sağlayamadığımız için kaldırıldı. Lütfen bunun yerine WindowMetricsCalculator'ı (Icda5f) kullanın.
  • Uzantılar API'si güncellendi. (Ica92b)
  • Yeni bir özellik için arayüz eklendi: etkinlikleri yerleştirme ve bunları üst öğe içinde yan yana gösterme görev penceresi. (I5711d)
  • WindowMetrics ve WindowLayoutInfo oluşturucuları gizlendi. Bunun yerine lütfen test API'lerini kullanın. (I5a1b5)
  • Sahte WindowLayoutInfo nesneleri oluşturmak için 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ı. Sürüm 1.0.0-beta02 bu kaydetmeleri içerir.

Yeni Özellikler

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

Sürüm 1.0.0-beta01

18 Ağustos 2021

androidx.window:window-*:1.0.0-beta01 yayınlandı. Sürüm 1.0.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Eski sabit değerler kaldırıldı ve FoldingFeature, arayüz haline getirildi.

API Değişiklikleri

  • Eski sabit değerleri kaldırın ve FoldFeature'ı bir arayüz haline getirin. (I9a2d5)

Hata Düzeltmeleri

  • Test Core kitaplığına bağlı kitaplıklar 1.4.0 sürümüne yükseltildi ve artık Android platformuyla çalışacak sürüm S (I88b72, b/189353863)

Sürüm 1.0.0-alpha10

4 Ağustos 2021

androidx.window:window-*:1.0.0-alpha10 yayınlandı. 1.0.0-alpha10 sürümü bu kaydetmeleri 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ğinden mevcut aralık metriklerini WindowInfoRepository'de bir Akışa dönüştürün.
  • WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandır
  • Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleyin
  • Paketleri, destekledikleri özelliklere göre grup sınıflarına güncelleyebilirsiniz.

API Değişiklikleri

  • ActivityExt öğesini ActivityExtensions olarak yeniden adlandır Depo'dan Kod Deposu'na geçiş yapın. (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ın adını WindowInfoRepoCallbackAdapter olarak değiştirir
    • Başka 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 yerine occlusionType olarak değiştirme (If4cff)

Hata Düzeltmeleri

  • Temel kitaplığın kaldırıldığı sırada proGuard hatası düzeltildi.
  • WindowLayoutInfo'nun ek abonelere teslim edilmediği hata düzeltildi.
  • Yapılandırma değişikliklerinin katlanan özellik güncellemelerini tetiklememesi gereken 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 kaydetmeleri içerir.

Yeni Özellikler

  • Tam sayı sabitlerinden sınırsız enum'lara 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ştir.

Hata Düzeltmeleri

  • Veri akışlarına birden fazla tüketici eklerken başlangıç değerini verin.

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 kaydetmeleri 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'i kullanın. (I57f66 ve 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 kaydetmeleri içerir.

Yeni Özellikler

  • Temel pencere kitaplığını Kotlin'e taşıyın. Eşzamansız verileri ileride sunmak için eş yordamlar ve askıya alma işlevleri kullanılacak.
  • WindowInfoRepo'yu WindowMetrics'i ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak ekleyin.
  • Geri çağırmaları kaydetmek ve kayıtlarını iptal etmek için Java uyumlu API'leri ortaya çıkaracak yeni window-java yapısı.
  • RxJava tarafından uyarlanmış API'leri ortaya çıkarmak için yeni window-rxjava2 ve window-rxjava3 yapıları.

API Değişiklikleri

  • Bağımlılıkları eşit şekilde sağlamak için WindowServices ekleyin.
    • Pencere düzeni bilgilerini 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 kaydetmeleri içerir.

Yeni Özellikler

  • Kotlin'e geçiş sürecini başlattık ve bu süreci 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 hiçbir kullanım alanında desteklenmediği için STATE_FLIPPED özelliğini FoldingFeature durumlarından kaldırdık.
  • Kullanımdan kaldırılan diğer API'leri de kaldırdık.

API Değişiklikleri

  • Bağımlılık olarak Kotlin ekleme.
    • Temel kitaplığı Kotlin'e taşıyın. (Idd995)
  • DisplayFeature oluşturucu kaldırıldı. (I61fa4)
  • DeviceState, herkese açık API'den kaldırıldı, bunun yerine FoldingFeature uygulamasını kullanın. (Id6079)
  • Cihaz durumu geri çağırmasını uzantılardan kaldırın. (I5ea83)
  • STATE_FLIPPED adlı cihazı katlama özelliğinden 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 kaydetmeleri içerir.

Yeni Özellikler

Uygulamaların, özelliğin ayırma veya kapanıp kapatmadığını ve menteşenin yönünü belirleyebilmesi için FoldingFeature'a kolaylık yöntemleri ekledik. Ayrıca menteşe türünü gizleyerek

Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırıyoruz. Dolaylı bir yarış koşulu olduğundan eşzamanlı okuma yöntemleri hataya açıktır. WindowLayoutInfo ile ilgili güncellemeleri almak için dinleyicileri ve geri çağırmaları kaydedin.

API Değişiklikleri

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

Sürüm 1.0.0-alpha04

10 Mart 2021

androidx.window:window:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • OEM uygulaması yoksa WindowLayoutInfo uygulamasının belirtilmediği bir hatayı düzeltir. Şimdi boş bir WIndowLayoutInfo yayınlıyoruz.
  • Uygulama arka plandayken menteşe durumu değişirse durumun düzgün bir şekilde güncellenmemesine neden olan hata düzeltildi. Artık durum tutarlı olmalıdır.
  • Ç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ş 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 kaydetmeleri içerir.

Yeni Özellikler

  • OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer girin. Bu sayede kitaplığın daha fazla cihazda kullanılması kolaylaşır. API'ler eşzamansız olduğundan, uygulamaların yine de bazı savunma kodları yazmaları ve zaman aşımından sonra varsayılan bir değer yayınlamaları önerilir. OEM uygulamaları konusunda herhangi bir garanti veremeyiz ve başlangıç değeri gecikebilir.

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha02

27 Ocak 2021

androidx.window:window:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

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

  • DisplayFeature'ı, diğer özelliklerin bundan sonra uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz, artık ekran katlama veya menteşeyi temsil eden FoldingFeature. Bu değer, DeviceState'in yerini alan menteşenin durumunu da içerir.

  • WindowMetrics, geliştiricilerin bir pencereyle ilgili metrikleri (örneğin, ekrandaki konumu, boyutu ve sistem eklerini) sorgulamanın basit bir yolunu sağlamak amacıyla Android 11'de kullanıma sunuldu. Geliştiricilerin WindowMetrics'ten yararlanabilmesi ve eski Android sürümlerini desteklemeye devam edebilmesi için bu sürümde API'yi geriye dönük olarak aktardık. WindowMetrics değerleri, WindowManager#getCurrentWindowMetrics() ve WindowManager#getmaximumWindowMetrics() API'leri aracılığıyla edinilebilir.

API Değişiklikleri

  • Bir sonraki alfa sürümünde (Ib7cc4) kaldırılacak API'leri kullanımdan kaldırın
  • Uygunsuz Etkinlikleri kabul etmek için ExtensionInterface öğesini günceller referanslar. (I07d)
  • WindowMetrics API'yi kullanıma sunar. (I3ccee)
  • Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırın (I69983)
  • ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)

Hata Düzeltmeleri

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

Harici Katkı

  • İşlemi kolaylaştırmak için DeviceState ve WindowLayoutInfo bilgilerini birleştirin verilere erişme. (Id34f4)

Sürüm 1.0.0-alpha01

27 Şubat 2020

androidx.window:window:1.0.0-alpha01 androidx.window:window-extensions:1.0.0-alpha01 emin olun. 1.0.0-alpha01 sürümü bu kaydetmeleri içerir. Bu, Windows Manager kitaplığının ilk sürümüdür.

Yeni özellikler

  • DisplayFeature: Bu yeni API, sürekli aralıktaki kesintileri tanımlar menteşe veya kıvrım gibi ekran yüzeyleri
  • DeviceState: Bu yeni API, telefonun mevcut duruşunu tanımlanan duruşların bir listesi (örneğin, CLOSED, OPENED, HALF_OPENED, vb.)