WindowManager
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
16 Ekim 2024 | 1.3.0 | - | - | 1.4.0-alpha05 |
Bağımlılıkları beyan etme
WindowManager'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanızın veya modülünüzün build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Groovy
dependencies { implementation "androidx.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'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.4
Sürüm 1.4.0-alpha05
16 Ekim 2024
androidx.window:window-*:1.4.0-alpha05
yayınlanır. 1.4.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
WindowMetrics
öğesindenwidthDp
veheightDp
değerlerini almak için kolaylık işlevleri ekleyin.
API Değişiklikleri
WindowMetrics
içinwidthDp
veheightDp
ekler. (Ide026)- Deneysel
WindowInsets
API'yi kaldırın. (I68a71) - Sınır kontrolü yöntemi adlarını
isAtLeast
(Ib0ab7) olarak güncelleyin.
Sürüm 1.4.0-alpha04
2 Ekim 2024
androidx.window:window-*:1.4.0-alpha04
yayınlanır. 1.4.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
WindowMetrics
değerindenWindowSizeClass
değerini hesaplayan bir yöntem eklendi. (874dba)- Anlaşılır olması için
WindowSizeClass
yöntemlerinicontainsWidthDp
,containsHeightDp
vecontainsWindowSizeDp
olarak değiştirin. (fa760d) WindowAreaController
'ü soyut taban sınıfına dönüştürün. (I90893)
Hata Düzeltmeleri
- Test oluştururken göreli sınırlar için destek ekleyin
FoldingFeature
. (2e6b3e) WindowSizeClass
seçilirken karşılaşılan genel hatalar düzeltildi.
Sürüm 1.4.0-alpha03
18 Eylül 2024
androidx.window:window-*:1.4.0-alpha03
yayınlanır. 1.4.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
WindowMetrics
öğesindenWindowSizeClass
almak için bir yardımcı program yöntemi ekleyin. (I83f1f)isAtLeast
'ücontainsBreakpoint
olarak yeniden adlandırın. (I85b47)computeWindowSizeClass
işlevine kayan noktalı sayıları kullanarak aşırı yükleme ekleyin. (I3dcb2, b/364677934, b/364677802, b/364680886)
Hata Düzeltmeleri
- Eksik kesme noktalarını varsayılan
WindowSizeClass
kesme noktası kümesine ekleyin. - Bazı durumlarda kompakt boyutların doğru şekilde seçilmemesine neden olan hata düzeltildi.
Sürüm 1.4.0-alpha02
4 Eylül 2024
androidx.window:window-*:1.4.0-alpha02
yayınlanır. 1.4.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
Özel WindowSizeClass
desteği ekleyin.
- Geliştiricilerin kendilerini kullanabilmeleri için
WindowSizeClass
sınıfının kurucusunu açın. - Geliştiricilerin bir dizi
WindowSizeClass
değerini işleyebilmesi içinisAtLeast
yardımcı yöntemleri ekleyin. - Kümedeki en iyi eşleşmeyi hesaplamak için
Set<WindowSizeClass>
'e bir uzantı işlevi ekleyin. - Android için önerilen kesme noktaları için sabitler ekleyin.
- Android'in önerdiği kesme noktalarına karşılık gelen kesme noktası grubunu ekleyin.
API Değişiklikleri
WindowSizeClass
için sınır yöntemi adlarını güncelleyin. (If89a6)WindowSizeClass
API'sini, gelecekte yeni kesme noktası değerlerinin eklenmesini destekleyecek şekilde güncelleyin. Mutlak sınırlar yerine alt sınırları kullanırız ve geliştiricilerinWindowSizeClass
işlenirken alt sınır kontrollerini kullanmasını öneririz. MevcutWindowWidthSizeClass
veWindowHeightSizeClass
, daha fazla geliştirilmeyeceği için desteği sonlandırılacak. (I014ce)
Sürüm 1.4.0-alpha01
7 Ağustos 2024
androidx.window:window-*:1.4.0-alpha01
yayınlanır. 1.4.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- ActivityStack sabitleme, uygulamaların içeriği bir kapsayıcıya sabitlemesine ve içeriğin gezinme özelliğini diğer kapsayıcıdan izole etmesine olanak tanır.
- Etkileşimli Bölme, uygulamaların bölünmüş bir sunudaki iki etkinlik arasında sabit veya sürüklenebilir bir bölme göstermesine olanak tanır.
- Tam Ekran İletişim Kutusu Karartma, uygulamaların görev penceresinin tamamını veya yalnızca iletişim kutusunu karartmak için iletişim kutusunun karartma alanını belirtmesine olanak tanır.
- Yerleşik Etkinlik Penceresi Bilgisi Geri Çağırma, uygulamaların yerleşik etkinlik penceresiyle ilgili güncellemeleri sürekli olarak almasına olanak tanır.
- Animasyon arka planını yerleştirme, uygulamaların animasyon arka planını belirtmesine olanak tanır ve
ActivityEmbedding
kullanıldığında geçiş animasyon kalitesini artırır. - Geliştirilmiş ActivityStack Yönetimi, uygulamaların
ActivityEmbedding
kullanıldığındaActivityStacks
üzerinde daha fazla kontrole sahip olmasını sağlar. Örneğin: - Belirli bir
ActivityStack
'te etkinlik başlatma ActivityStack
tamamlama
API Değişiklikleri
Yeni bir API
WindowInfoTracker#supportedPostures
:- Cihazın katlanabilir cihazlar için masaüstü modunu destekleyip desteklemediğini belirlemek üzere kullanılan bir API. WindowAreaSessionPresenter#getWindow eklendi
ActivityStack
sabitlemeyi desteklemek için API'ler ekleyin:SplitPinRule
sınıfSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
Etkileşimli bölücüyü etkinleştirmek ve yapılandırmak için API'ler ekleme
DividerAttributes
sınıfSplitAttributes.Builder#setDividerAttributes
İletişim kutuları için
EmbeddingConfiguration
veDimAreaBehavior
ayarlamak üzere API'ler eklemeEmbeddingConfiguration
sınıfDimAreaBehavior
sınıfActivityEmbeddingController#setEmbeddingConfiguration
Yerleşik etkinlik aralığı bilgi güncellemelerini almak için API'ler ekleme
EmbeddedActivityWindowInfo
sınıfActivityEmbeddingController#embeddedActivityWindowInfo
İçe aktarma animasyonu arka planını ayarlamak için API ekleme
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
ActivityStacks
işlemini tamamlamak için API ekleyinActivityEmbeddingController#finishActivityStacks
Lansman ayarlamak için API ekleme
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
Aşağıdaki API'ler kararlı ve artık deneysel değildir:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(SplitController#invalidateTopVisibleSplitAttributes'ten taşındı)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
1.4 için API'ler ekleyin. (I56774)
Hata Düzeltmeleri
- Oturum etkinken ACTIVE yerine UNAVAILABLE değerinin döndürüldüğü belirli cihazlardaki hatayı düzeltir.
- Kararsız API desteği nedeniyle
vendorApiLevel
değeri 2 olan cihazlardatransferActivityToWindowArea
desteği kaldırıldı. - Etkinlik yerleştirme için sürüklenebilir bölmelerde tam ekrana sürükleme özelliğini etkinleştirmek üzere API kullanıma sunuldu. (I645c9)
- Uygulamaların,
SplitAttributes
için animasyon parametreleri aracılığıylaActivityEmbedding
animasyonlarını devre dışı bırakmasına izin verin. (Idc01a) - Yeni platform API'lerine erişim manuel olarak belirtilmemiştir. Bunun nedeni, AGP 7.3 veya sonraki sürümlerde R8 kullanıldığında (ör. R8 3.3 sürümü) ve AGP 8.1 veya sonraki sürümlerde tüm derlemelerde (ör. D8 8.1 sürümü) API modelleme aracılığıyla otomatik olarak gerçekleşmesidir. AGP kullanmayan müşterilerin D8 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)
- Cihazın animasyon geçişleri için kullanabilmesi amacıyla uzantıların
SplitAttributes
için animasyon parametrelerini almasına izin verin. (Iede00) - Yer paylaşımı API'lerini gizleme (Ic4251)
- Bölme için sabit veya sürüklenebilir bölücüyü yapılandırmak üzere API'ler kullanıma sunuldu (Ia7a78)
WindowMetrics
(Id6723) kampanyasına yoğunluk eklendiSupportedPostures
almak için API ekleyin. (If557a)setLaunchingActivityStack
'ü deneysel API'den kaldırma (I191cf)ActivityEmbeddingController#embeddedActivityWindowInfo
'ü tanıtın (I24312)#getToken
öğesini kullanımdan kaldırın ve#getActivityStackToken
öğesini ekleyin (Ie0471)embeddedActivityWindowInfo
iş akışı API'si için geri çağırma bağdaştırıcısı kullanıma sunuldu (Ida77f)- overlayInfo iş akışı API'si için geri çağırma bağdaştırıcısı ekleme (I7264f)
- Test için
extensionsVersion
değerini geçersiz kılmak üzereWindowSdkExtensionsRule
değerini tanıtın. (Ifb928) - -
#setLaunchingActivityStack
'üActivityOptionsCompat
kullanımlarıyla uyumlu hale getirmek için Bundle'a taşıyın.- Kullanıcılar
ActvityOptions
yerineactivityOptions.toBundle
değerini iletmelidir. #setLaunchingActivityStack(Activity)
öğesini kaldırın. Kullanıcılar,ActivityStack
almak içinActivityEmbeddingController#getActivityStac(Activity)
'e geçmeli veActivityStack
'yi#setLaunchingActivityStack
'ye iletmelidir. (Ie0ccc)
- Kullanıcılar
- - WM Jetpack ile uzantılar arasında iletişim kurmak için tanımlayıcı olarak
ActivityStack.Token
veSpltInfo.Token
'u tanıtın.- IBinder yerine jeton almak/iade etmek için API'leri kullanımdan kaldırın/değiştirin. (I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacks
ile tanışın- Özellik
#invalidateVisibleActivityStacks
ile birleştirildiği içinSplitController#invalidateTopVisibleSplitAttributes
'ü kaldırın (I02ef5)
- Özellik
- - Yerleştirme yapılandırmasını ayarlamak için API ekleme. (I59a4a)
- - En popüler
ActivityStack
androidx.Window
API'lerini sabitleme/sabitlemeyi kaldırma- Demo uygulamayı, üstteki öğeleri sabitlemeye/sabitlemeyi kaldırmaya izin verecek şekilde güncelleme
ActivityStack
(I24dd3)
- Demo uygulamayı, üstteki öğeleri sabitlemeye/sabitlemeyi kaldırmaya izin verecek şekilde güncelleme
#finishActivityStacks
veActivityEmbeddingOptions
'u yeniden ekleme (Ic1ab3)- Kararsız API'leri kaldırın. (Ibc534, b/302380585)
Sürüm 1.3
1.3.0 sürümü
29 Mayıs 2024
androidx.window:window-*:1.3.0
yayınlanır. 1.3.0 sürümü bu taahhütleri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
- Pencere Boyutu Sınıfları için Kotlin Çok Platformlu desteği.
Sürüm 1.3.0-rc01
14 Mayıs 2024
WindowManager
Jetpack 1.3, WindowSizeClass
özellikleri için Kotlin Çok Platformlu desteğinin yanı sıra birden fazla hata düzeltmesi sunar.
androidx.window:window-*:1.3.0-rc01
yayınlanır. 1.3.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 1.3.0-beta02
1 Mayıs 2024
androidx.window:window-*:1.3.0-beta02
yayınlanır. 1.3.0-beta02 sürümü 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
hatası düzeltildi. (I01b02)
Sürüm 1.3.0-beta01
3 Nisan 2024
androidx.window:window-*:1.3.0-beta01
yayınlanır. 1.3.0-beta01 sürümü bu taahhütleri içerir.
Sürüm 1.3.0-alpha03
6 Mart 2024
androidx.window:window-*:1.3.0-alpha03
yayınlanır. 1.3.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
WindowSizeClassUtil
'ü daha odaklanmış yöntemlere bölün. (Ie9292)WindowSizeClass#compute
(I21355, b/324293374) öğesini geri yükleme
Hata Düzeltmeleri
- Sağlanan bağlamın doğru şekilde sarmalanmamasına neden olan kilitlenmeyi düzeltir. (94d10ce , b/318787482)
Sürüm 1.3.0-alpha02
7 Şubat 2024
androidx.window:window-*:1.3.0-alpha02
yayınlanır. 1.3.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kendi boyut sınıflarını kullanmak isteyen geliştiricilerin esnekliğini artırmak için 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 gruptan
WindowSizeClass
seçmek için yardımcı işlevler ekleyin. Geliştiricilerin kendi seçicilerini yazabilmesi 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 durma noktaları eklenebilmesi için
WindowSizeClass
yapıcısını 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 olarak kısaltıldığında istisna düzeltildi. (272ffac)
Sürüm 1.3.0-alpha01
15 Kasım 2023
androidx.window:window-*:1.3.0-alpha01
yayınlanır. 1.3.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
FoldingFeature
oluşturmak için test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
kaynağından değer alırken geçersiz kılma işlemini raporluyor.WindowInfoTracker
, katlama özelliği verileriniUiContext
parametrelerine raporlar.- Cihazdaki uzantı sürümünü gösterin.
- Uygulama başına kullanıcı geçersiz kılma işlemleri için
WindowProperties
sabitleri:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
: Sistemi, uygulamanın kullanıcıya yönelik en boy oranı uyumluluğu geçersiz kılma özelliğini devre dışı bıraktığını bilgilendirir.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
: Uygulamanın, kullanıcının en boy oranı uyumluluğu geçersiz kılma ayarlarının tam ekran seçeneğini devre dışı bıraktığını sisteme bildirir.
Sürüm 1.2
Sürüm 1.2.0
15 Kasım 2023
androidx.window:window-*:1.2.0
yayınlanır. 1.2.0 sürümü bu taahhütleri içerir.
1.1.0 sürümünden bu yana yapılan önemli değişiklikler
- Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
FoldingFeature
oluşturmak için test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
kaynağından değer alırken geçersiz kılma işlemini raporluyor.WindowInfoTracker
, katlama özelliği verileriniUiContext
parametrelerine raporlar.- Cihazdaki 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ınlanır. 1.2.0-rc01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
FoldingFeature
oluşturmak için test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
kaynağından değer alırken geçersiz kılma işlemini raporluyor.WindowInfoTracker
, katlama özelliği verileriniUiContext
parametrelerine raporlar.- Cihazdaki 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ınlanır. 1.2.0-beta04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kararsız API'leri kaldırın. (Ibc534, b/302380585)
Sürüm 1.2.0-beta03
20 Eylül 2023
androidx.window:window-*:1.2.0-beta03
yayınlanır. 1.2.0-beta03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Doğru şekilde çalışması için uzantıların belirli bir sürümüne ihtiyaç duyan API'ler için
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 uzantısı sürümünü ek açıklamayla belirtin.
- Etkinlik Yerleştirme bileşenindeki
isXXXSupported
öğesini kaldırın. (Ie3dae)
- Etkinlik Yerleştirme bileşenindeki
- Cihazda uzantı sürümünü bildirmek için
WindowSdkExtensions
kullanın.- Gerekli minimum uzantı sürümüne
RequiresWindowSdkExtension
ekleyerek ek açıklama ekleyin. (I05fd4)
- Gerekli minimum uzantı sürümüne
WindowAreaInfo#getCapability
değerini boş bırakılamaz hale getirir. (I17048)
Sürüm 1.2.0-beta01
26 Temmuz 2023
androidx.window:window-*:1.2.0-beta01
yayınlanır. 1.2.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
FoldingFeature
oluşturmak için test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
kaynağından değer alırken geçersiz kılma işlemini raporluyor.WindowInfoTracker
, katlama özelliği verileriniUiContext
parametrelerine raporlar.
API Değişiklikleri
- 1.3'teki kararlı sürümde API değişikliklerinin devam etmesine izin vermek için
WindowArea
API'lerini deneysel olarak işaretler (I857f5) - API dosyaları, uyumluluğu engellemeyle ilgili not eklemek için güncellendi (I8e87a, b/287516207)
Sürüm 1.2.0-alpha03
21 Haziran 2023
androidx.window:window-*:1.2.0-alpha03
yayınlanır. 1.2.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Desteği sonlandırılan API'leri API yüzeyinden kaldırma
- Eşzamanlı ekranları desteklemek için API'ler ekleyin.
- Zorunlu yeniden boyutlandırmayı geçersiz kılmak için bir mülk ekleyin.
- Minimum en boy oranı geçersiz kılma özelliğini devre dışı bırakmak için mülk ekleyin.
- Etkinlik yerleştirmeyle ilgili birim testini desteklemek için
ActivityEmbeddingRule
'ü stabilize edin.
API Değişiklikleri
Hata Düzeltmeleri
- Zorunlu yeniden boyutlandırma geçersiz kılma için kapsam dışında kalma uyumluluk özelliği ekleme (Ie7ab1)
SESSION_STATE_CONTENT_INVISIBLE
öğesini uzantılar arayüzünden kaldırır. (I6ed19)- Etkinlik yerleştirmeyle ilgili birim testini desteklemek için
ActivityEmbeddingRule
'ü sabitleyin. (I8d6b6) - Minimum en boy oranı geçersiz kılma için kapsam dışında uyumluluk özelliği eklendi. (I66390)
- Desteği sonlandırılan WindowArea API'lerini kaldırır (Ieb67c)
- 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ü yoksayan kapsam dışında kalma uyumluluğu özelliği ekleme (I0a7a2)
- Özelliğin zaten etkin olduğunu belirtmek için
WindowAreaComponent#STATUS_ACTIVE
ekleyin. (I62bc3) RearDisplayPresentationMode
API'leri ekleme (I0401c)- Arka plan rengi API'si, kararlı sürüm için kaldırıldı. (I34c3e)
- Pencere Alanı API'lerini gizleme. (I39de0)
SplitController
içindekiSplitInfo
öğesini geçersiz kılacak yöntemler ekleyin.SplitInfo
veActivityStack
için çift oluşturmak üzere test yöntemleri ekleyin. (Icd69f)- Etiketi
ActivityRule.Builder
için isteğe bağlı hale getirin. (Ib0b44) RatioSplitType
,ExpandContainersSplit
veHingeSplitType
öğelerini kaldırın. Şu andaSplitType
.#splitEqually()
,#expandContainers()
ve#splitByHinge
değerlerini sabitSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
veSPLIT_TYPE_HINGE
ile değiştirin- Menteşe 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 olarak bölme işlemine geçilir. Yedek bölme türünü özelleştirmek için
SplitController#setSplitAttributesCalculator
simgesini kullanın. (Ifcc59)
add
/removeSplitCallback
desteğini sonlandırmaadd
/removeSplitCallback
'iSplitControllerCallbackAdapter
'ye taşımaSplitInfo
listesini almak içinFlow
desteği ekleyin (I7f1b6)
ActivityEmbeddingController
(I42e9b) için test kuralı eklemeActivityOptionsCompat
,ActivityEmbeddingOptions
olarak yeniden adlandırılıyor (I89301)- Etkinlik yerleştirmenin kullanılıp kullanılamadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) DEFAULT
değerini daha iyi temsil etmek içinSplitAttributes.BackgroundColor
değerini tanıtın. Opak olmayan animasyon arka plan renginin desteklenmediğini açıklayın. Bu nedenle, opak olmayan tüm renkler varsayılan olarak kabul edilir. Yani mevcut tema pencere arka plan rengi kullanılır. (Ic6b95)alwaysAllow()
vealwaysDisallow()
değerleriniALWAYS_ALLOW
veALWAYS_DISALLOW
ile değiştirin. (I3057b)SplitRule
,SplitAttributes
,SplitAttributesCalculator
için API'ler ekleyin. (I92d23)- Test için
ActivityStack
oluşturmak üzereTestActivityStack
ekleyin- Test için
SplitInfo
oluşturmak üzereTestSplitInfo
ekleyin. (I8e779)
- Test için
- Geliştiricilerin özelleştirilmiş
SplitAttributesCalculator
'lerini doğrulayabilmesi için sahteSplitAttributesCalculatorParams
oluşturmanın bir yolunu ekleyin (Id4a6e) WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
veWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
ekleyin (I66c7f)
Sürüm 1.2.0-alpha02
7 Haziran 2023
androidx.window:window-*:1.2.0-alpha02
yayınlanır. 1.2.0-alpha02 sürümü bu taahhütleri 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 işlemi, Context tabanlı API dahil olmak üzerewindowLayoutInfo
'ın tüm değerlerini geçersiz kılar.
API Değişiklikleri
- Belirtilmemiş merkezden katlama özelliği için sabit ekleyin. (I7530c)
Hata Düzeltmeleri
WindowLayoutInfoPublishRule
'ü,Context
tabanlıWindowLayoutInfo
'de geçersiz kılma işlemlerini destekleyecek şekilde güncelleyin. (I2037a)
Sürüm 1.2.0-alpha01
24 Mayıs 2023
androidx.window:window-*:1.2.0-alpha01
yayınlanır. 1.2.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
Etkinlik yerleştirme ve WindowLayoutInfoTracker
ile ilgili API testlerini stabilize edin. ActivityEmbeddingRule
sürümü kararlı sürüme yükseltildi.
WindowMetricsCalculatorRule
sürümü kararlı sürüme yükseltildi.
Test için FoldingFeature
oluşturmaya yönelik yardımcı program işlevleri kararlı sürüme geçirildi.
API Değişiklikleri
- Etkinlik yerleştirmeyle ilgili birim testini desteklemek için
ActivityEmbeddingRule
'ü sabitleyin. (I8d6b6) WindowMetrisCalculatorTestRule
, JVM testleri için stub metriklerini etkinleştirerek kararlıdır. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.- JVM testini desteklemek için
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ınlanır. 1.1.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
Etkinlik Yerleştirme
- Uygulama manifest dosyasında
<application>
etiketinin boole özelliği olarakPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
eklendi. - Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupported
desteği sonlandırıldı vesplitSupportStatus
ile değiştirildi. splitSupportStatus
özelliği için durum sabitleri sağlamak üzereSplitController.SplitSupportStatus
iç içe yerleştirilmiş sınıfı eklendi.SplitController
, birkaç modüle yeniden yapılandırıldı:Activity
veyaActivityStack
ile ilgili API'ler içinActivityEmbeddingController
modülü.isActivityEmbedded
,SplitController
konumundanActivityEmbeddingController
konumuna taşındı.EmbeddingRule
ile ilgili işlemler içinRuleController
modülü:- Kaldırılan
SplitController
API'leri: clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API eklendi:addRule()
: Aynı etikete sahip bir kural ekler veya mevcut kuralı günceller.removeRule()
: Bir kuralı kayıtlı kurallar koleksiyonundan kaldırır.setRules()
: Kural koleksiyonu oluşturur.clearRules()
: Kayıtlı tüm kuralları kaldırır.parseRules()
: XML kural tanımlarından kuralları ayrıştırır.
- Tüm modüller için
#getInstance()
yöntemiyle bir bağlamın başlatılması gerekir. Örneğin:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Görüntü 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
SplitAttributes
hesap makinesi işlevleriSplitController
'e eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
SplitAttributesCalculator
API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek içinisSplitAttributesCalculatorSupported()
EmbeddingRule#tag
alanı eklendi.SplitRule
'teki API güncellemeleri:defaultSplitAttributes
eklendi: Bölünmenin varsayılan bölme düzenini tanımlar;splitRatio
velayoutDirection
'nin yerini alır.splitRatio
vesplitLayoutDirection
XML özelliklerinin çevirisidefaultSplitAttributes
'e eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanacak şekilde değiştirildi.
- Varsayılan değeri 600 dp olan
minHeightDp
eklendi. minWidth
, varsayılan değeri 600 dp olanminWidthDp
olarak değiştirildi.minSmallestWidth
, varsayılan değeri 600 dp olanminSmallestWidthDp
olarak değiştirildi.maxAspectRatioInHorizontal
,ALWAYS_ALLOW
varsayılan değeriyle eklendi.- Varsayılan değeri 1,4 olan
maxAspectRatioInPortrait
eklendi. - Bitiş davranışı sabitlerinin yerini alacak
FinishBehavior
iç içe yerleştirilmiş sınıfı tanımladı. - Mülk değişiklikleri,
SplitPairRule
veSplitPlaceholderRule
için Builder iç içe yerleştirilmiş sınıfına uygulandı.
- Bölümle ilgili ek bilgiler sağlamak için
SplitInfo#getSplitRatio()
,SplitInfo#getSplitAttributes()
ile değiştirildi.
WindowLayout
WindowInfoTracker
için deneysel etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.WindowMetricsCalculator
için deneysel etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma Adımları
- Etkinliklerin bölünmüş olarak gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek üzere uygulamaların manifest
<application>
etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
mülkünü eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Bu, sistemin bir uygulama için bölünmüş davranışları önceden optimize etmesine olanak tanır. SplitInfo
oranı- Mevcut bölmelerin yığılmış 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. }
- Mevcut bölmelerin yığılmış olup olmadığını kontrol edin:
- SplitController taşıma işlemleri:
SplitController.getInstance()
yerineSplitController.getInstance(Context)
getirildi.SplitController.initialize(Context, @ResId int)
yerineRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
getirildi.SplitController.getInstance().isActivityEmbedded(Activity)
yerineActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
getirildi.SplitController.getInstance().registerRule(rule)
yerineRuleController.getInstance(Context).addRule(rule)
getirildi.SplitController.getInstance().unregisterRule(rule)
yerineRuleController.getInstance(Context).removeRule(rule)
getirildi.SplitController.getInstance().clearRegisteredRules()
yerineRuleController.getInstance(Context).clearRules()
getirildi.SplitController.getInstance().getSplitRules()
yerineRuleController.getInstance(Context).getRules()
getirildi.
SplitRule
mülk taşıma işlemleri:minWidth
veminSmallestWidth
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 )
veyaminWith
'ü piksel cinsindendisplayMetrics#density
'e bölebilir.
- Bitirme davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER
yerineFinishBehavior.NEVER
getirildi.FINISH_ALWAYS
yerineFinishBehavior.ALWAYS
getirildi.FINISH_ADJACENT
yerineFinishBehavior.ADJACENT
getirildi.
- Düzen yönü
SplitAttributes.LayoutDirection
olarak taşınmalıdır:ltr
yerineSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
getirildi.rtl
yerineSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
getirildi.locale
yerineSplitAttributes.LayoutDirection.LOCALE
getirildi.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
'e taşınmalıdır.
SplitPairRule.Builder
taşıma işlemleri:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
yerinekotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
yerinekotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
vesetFinishSecondaryWithPrimary
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.- Dikey cihazlarda bölme göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
simgesini kullanın.
SplitPlaceholder.Builder
taşıma işlemleri:- Yalnızca
filters
veplaceholderIntent
parametrelerine sahiptir. Diğer özellikler, ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder taşımaları"na bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değiştirilir:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Dikey cihazlarda bölme göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
simgesini kullanın.
- Yalnızca
Sürüm 1.1.0-rc01
10 Mayıs 2023
androidx.window:window-*:1.1.0-rc01
yayınlanır. 1.1.0-rc01 sürümü bu taahhütleri içerir.
Yeni Özellikler
ActivityEmbedding
'ü kararlı bir API olarak yayınlayın.- Çeşitli hata düzeltmeleri yapıldı.
Sürüm 1.1.0-beta02
5 Nisan 2023
androidx.window:window-*:1.1.0-beta02
yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Dahili düzeltmeler ve temizlik.
Sürüm 1.1.0-beta01
22 Mart 2023
androidx.window:window-*:1.1.0-beta01
yayınlanır. 1.1.0-beta01 sürümü bu taahhütleri içerir.
Etkinlik Yerleştirme
- Uygulama manifest dosyasında
<application>
etiketinin boole özelliği olarakPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
eklendi. - Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupported
desteği sonlandırıldı vesplitSupportStatus
ile değiştirildi. splitSupportStatus
özelliği için durum sabitleri sağlamak üzereSplitController.SplitSupportStatus
iç içe yerleştirilmiş sınıfı eklendi.SplitController
, birkaç modüle yeniden yapılandırıldı:Activity
veyaActivityStack
ile ilgili API'ler içinActivityEmbeddingController
modülü.isActivityEmbedded
,SplitController
konumundanActivityEmbeddingController
konumuna taşındı.EmbeddingRule
ile ilgili işlemler içinRuleController
modülü:- Kaldırılan
SplitController
API'leri:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API'si eklendi:addRule()
: Aynı etikete sahip bir kural ekler veya mevcut kuralı günceller.removeRule()
: Bir kuralı kayıtlı kurallar koleksiyonundan kaldırır.setRules()
: Kural koleksiyonu oluşturur.clearRules()
: Kayıtlı tüm kuralları kaldırır.- `parseRules() — XML kural tanımlarından kuralları ayrıştırır.
- Tüm modüller için
#getInstance()
yöntemiyle bir bağlamın başlatılması gerekir. Örneğin:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Görüntü 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
SplitAttributes
hesap makinesi işlevleriSplitController
'e eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için
EmbeddingRule#tag
alanı eklendi.SplitRule
'teki API güncellemeleri:defaultSplitAttributes
eklendi: Bölünmenin varsayılan bölme düzenini tanımlar;splitRatio
velayoutDirection
'nin yerini alır.splitRatio
vesplitLayoutDirection
XML özelliklerinin çevirisidefaultSplitAttributes
'e eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanacak şekilde değiştirildi.
- Varsayılan değeri 600 dp olan
minHeightDp
eklendi. minWidth
, varsayılan değeri 600 dp olanminWidthDp
olarak değiştirildi.minSmallestWidth
, varsayılan değeri 600 dp olanminSmallestWidthDp
olarak değiştirildi.maxAspectRatioInHorizontal
,ALWAYS_ALLOW
varsayılan değeriyle eklendi.maxAspectRatioInPortrait
,1.4
varsayılan değeriyle eklendi.- Bitiş davranışı sabitlerinin yerini alacak
FinishBehavior
iç içe yerleştirilmiş sınıfı tanımladı. - Mülk değişiklikleri,
SplitPairRule
veSplitPlaceholderRule
'ninBuilder
iç içe yerleştirilmiş sınıfına uygulandı.
- Bölümle ilgili ek bilgiler sağlamak için
SplitInfo#getSplitRatio()
,SplitInfo#getSplitAttributes()
ile değiştirildi.
WindowLayout
WindowInfoTracker
için etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.WindowMetricsCalculator
etkinliği için etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma Adımları
- Etkinliklerin bölünmüş olarak gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek üzere uygulamaların manifest
<application>
etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
mülkünü eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Bu, sistemin bir uygulama için bölünmüş davranışları önceden optimize etmesine olanak tanır. SplitInfo
oranı- Mevcut bölmelerin yığılmış 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. }
- Mevcut bölmelerin yığılmış olup olmadığını kontrol edin:
SplitController
taşıma işlemleri:SplitController.getInstance()
yerineSplitController.getInstance(Context)
getirildi.SplitController.initialize(Context, @ResId int)
yerineRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
getirildi.SplitController.getInstance().isActivityEmbedded(Activity)
yerineActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
getirildi.SplitController.getInstance().registerRule(rule)
yerineRuleController.getInstance(Context).addRule(rule)
getirildi.SplitController.getInstance().unregisterRule(rule)
yerineRuleController.getInstance(Context).removeRule(rule)
getirildi.SplitController.getInstance().clearRegisteredRules()
yerineRuleController.getInstance(Context).clearRules()
getirildi.SplitController.getInstance().getSplitRules()
yerineRuleController.getInstance(Context).getRules()
getirildi.
SplitRule
mülk taşıma işlemleri:minWidth
veminSmallestWidth
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 )
veyaminWith
'ü piksel cinsindendisplayMetrics#density
'e bölebilir.
- Bitirme davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER
yerineFinishBehavior.NEVER
getirildi.FINISH_ALWAYS
yerineFinishBehavior.ALWAYS
getirildi.FINISH_ADJACENT
yerineFinishBehavior.ADJACENT
getirildi.
- Düzen yönü
SplitAttributes.LayoutDirection
olarak taşınmalıdır:ltr
yerineSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
getirildi.rtl
yerineSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
getirildi.locale
yerineSplitAttributes.LayoutDirection.LOCALE
getirildi.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
'e taşınmalıdır.
SplitPairRule.Builder
taşıma işlemleri:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
yerinekotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
,kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
olarak değiştirilir.setFinishPrimaryWithSecondary
vesetFinishSecondaryWithPrimary
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.- Dikey cihazlarda bölme göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
simgesini kullanın.
SplitPlaceholder.Builder
taşıma işlemleri:- Yalnızca
filters
veplaceholderIntent
parametrelerine sahiptir. Diğer özellikler, ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder taşımaları"na bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değiştirilir:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Dikey cihazlarda bölme göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
simgesini kullanın.
- Yalnızca
Sürüm 1.1.0-alpha06
22 Şubat 2023
androidx.window:window-*:1.1.0-alpha06
yayınlanır. 1.1.0-alpha06 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kullanıcı arayüzü bağlamında
WindowLayoutInfo
almanın deneysel sürümünü kullanıma sunma.
API Değişiklikleri
- Etkinlik yerleştirmenin kullanılıp kullanılamadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) - UI Context
WindowLayoutInfo
API'yi deneysel olarak etkinleştirin. (I58ee0) - Mevcut pencereyi arka kamerayla hizalanan ekrana taşımak için
RearDisplay
modunu etkinleştirmek üzereWindowAreaController
ve API'leri kullanıma sunar. (Iffcbf) - Varsayılan arka plan rengini güncelleyin. (I1ac1b)
SplitAttributes
parametreleri ekleyin. (I18bdd)SplitRule
,SplitAttributes
,SplitAttributesCalculator
için API'ler ekleyin. (I92d23)maxAspectRatio
ile ilgili API'leri iyileştirin:alwaysAllow()
vealwaysDisallow()
değerleriniALWAYS_ALLOW
veALWAYS_DISALLOW
ile değiştirin.- @see API dokümanlarını bağımsız dokümanlarla güncelleyin. (I3057b)
- Aşağıdaki kurucular, uygulamalar tarafından çağrılmaları gerekmediği için herkese açık API'lerden kaldırıldı.
SplitInfo
oluşturucuActivityStack
kurucu (Ide534)
SplitRule
artıkmaxAspectRatioInPortrait/Landscape
alıyor. Yalnızca üst sınırların en boy oranı istenenmaxAspectRatio
değerinden küçük veya eşit 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
- API adlandırmasını uyumlu hale getirin - Birden fazla örnek için ekleme/kaldırma işlemini kullanın:
registerRule
yerineaddRule
getirildiunregisterRule
yerineremoveRule
getirildiActivityRule
bölünmüş kural olmadığı içingetSplitRules
yerinegetRules
koyun- Bir dizi kural ayarlamak için
RuleController#setRules
ekleyin - Kuralla ilgili API'leri
SplitController
'ten tekilRuleController
'e çıkarın. Bunlar: addRule
removeRule
getRules
setRules
clearRules
parseRules
#isActivityEmbedded
öğesiniSplitController
'dan tekilActivityEmbeddingController
öğesine çıkarın. Bunlar:isActivityEmbedded
SplitController#initialize
öğesini kaldırın. XML dosyasından kural ayarlamak için lütfenRuleController#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)
- Artık statik kuralları çalışma zamanı kurallarından ayırmıyoruz. Bununla birlikte,
#clearRules
çağrısı, statik XML kural tanımlarıyla kaydedilmiş veya çalışma zamanında kaydedilmiş olmalarına bakılmaksızın tüm kuralların temizlenmesine neden olur.SplitController#clearRegisteredRules
'ün eski davranışını elde etmek için lütfen XML kaynak kimliğiyleRuleController#parseRules
'ü çağırın ve kuralları tekrar ayarlamak içinRuleController#setRules
'yi ç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ştirme:
SplitRule
için minimum boyutları piksel yerine DP cinsinden alın.SplitRule
Oluşturucu'nun minimum boyutları isteğe bağlı olarak alması için yeniden yapılandırın. (I95f17)
SplitController
'ü başlatmak için bir bağlam gönderme (I42549)SplitRule#layoutDir
,#layoutDirection
olarak veSplitRule Builder#setLayoutDir
,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ınlanır. 1.1.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Bir
ActivityStack
değerininActivityEmbedding
için boş olup olmadığını belirlemek üzere bir yöntem gösterin. - Deneysel API etiketleri
ActivityEmbedding
API'lerinden kaldırıldı. - Tercih edilen oluşturma yöntemi
Builder
olduğu içinActivityRule
oluşturucusunu gizleyin. WindowMetrics
üzerindeWindowInsets
almak için deneysel bir yöntem ekleyin.- Yer tutucunun tamamlanmasını önlemek için
SplitPlaceholderFinishBehavior
değerini güncelleyin. Yer tutucunun tamamlanması, kafa karıştırıcı bazı davranışlara neden oldu.
API Değişiklikleri
- fun
isEmpty
yerine valisEmpty
değerini herkese açık hale getirin. ActivityStack
parametre etkinlikleriniactivitiesInProcess
olarak yeniden adlandırın. (Ia5055)- Kafa karıştırıcı oldukları için
ActivityFilter#matchesClassName
veActivityFilter#matchesClassNameOrWildCard
öğelerini kaldırın. - Arayanın farklı filtreleri ayırt etmesine izin vermek için
ActivityFilter#componentName
abdActivityFilter#intentAction
ekleyin (I41f22) @Deprecated
API'lerini deneysel API'den kaldırma (I216b3)- Etkinlik Yerleştirme API'leri için
@ExperimentalWindowApi
'ü kaldırma (I69ebe) ActivityRule
kurucusunu gizleyin, bunun yerine Builder'ı kullanın. (If4eb6)- Bir etkinliğin
ActivityFilter
'e dahil olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf) - API dosyalarını
WindowMetrics
veWindowMetricsCalculatorCompat
sınıflarındaki değişiklikleri yansıtacak şekilde güncelleme (I667fe) ActivityEmbedding
mülkünün Javadoc'ını ve sınıf adını güncelleme (Ia1386)- AndroidManifest.xml'de kullanılacak
ActivityEmbedding
mülk etiketi adlarını ekleme (Id1ad4) - Yer tutucu etkinliklerin ne zaman sona ereceğini ve etkinlik yerleştirmedeki ilişkili etkinliklerin nasıl davranacağını tanımlayan mevcut
SplitPlaceholderRule.finishPrimaryWithSecondary
API'sinin yerine yeniSplitPlaceholderFinishBehavior
veSplitPlaceholderRule.finishPrimaryWithPlaceholder
API'leri eklendi. (I64647)
Hata Düzeltmeleri
- Mevcut pencereyi arka kamerayla hizalanan ekrana taşımak için
RearDisplay
modunu etkinleştirmek üzereWindowAreaController
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ınlanır. 1.1.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Yerleştirme kurallarının varsayılan değerlerini 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ınlanır. 1.1.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için adaptör 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ınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Java ve RxJava'yı destekleyen adaptörleri kullanıma sunma
Sürüm 1.1.0-alpha01
20 Nisan 2022
androidx.window:window:1.1.0-alpha01
yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Bir uygulamanın arka plana alınmasının katlama özelliklerini yayınlamayı 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. (I39eb7)
Hata Düzeltmeleri
- Etkinlik bölmelerindeki kapsayıcılar için bitirme 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ınlanır. 1.0.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünün önemli özellikleri
WindowInfoTracker
veFoldingFeature
ile katlanabilir telefon desteği.WindowMetricsCalculator
, mevcut WindowMetrics'in hesaplanmasına yardımcı olur.
Sürüm 1.0.0-rc01
15 Aralık 2021
androidx.window:window-*:1.0.0-rc01
yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.
Yeni Özellikler
WindowInfoTracker
üzerinden katlanabilir telefonlar için destek 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ınlanır. 1.0.0-beta04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- WindowInfoRepository adlı sınıfı WindowInfoTracker olarak yeniden adlandırın.
- Activity'yi WindowInfoTracker için açık bir yöntem bağımlılığı haline getirin.
- Robolectric kullanan geliştiricileri desteklemek için WindowMetricsCalculator için basit bir TestRule ekleyin.
API Değişiklikleri
- Uzantı ayıklama (I25a5f)
- ActivityStack'e isEmpty ekleyin (I5a4e6)
- WindowInfoRepository adlı sınıfı WindowInfoTracker olarak yeniden adlandırın.
- java/rxjava/testing bağımlılıkları eşleşecek şekilde güncellenmelidir. (I0da63)
- Basit bir WindowMetricsCalculator için test kuralı ekleyin. (Ibacdb)
Sürüm 1.0.0-beta03
27 Ekim 2021
androidx.window:window-*:1.0.0-beta03
yayınlanır. 1.0.0-beta03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Deneysel etkinlik yerleştirme API'leri ekleyin. Bu ilk düzen sürümü, iki etkinliği yan yana göstermenize olanak tanır.
API Değişiklikleri
- Doğru şekilde sağlayamadığımız için currentWindowMetrics API kaldırıldı. Bunun yerine lütfen WindowMetricsCalculator'ı kullanın (Icda5f)
- Uzantıları API'si güncellendi. (Ica92b)
- Etkinlikleri yerleştirmeye ve üst görev penceresinde yan yana göstermeye olanak tanıyan yeni bir özellik için bir arayüz eklendi. (I5711d)
- WindowMetrics ve WindowLayoutInfo için kurucular gizlendi. Lütfen bunun yerine test API'lerini kullanın. (I5a1b5)
- Sahte WindowLayoutInfo nesneleri oluşturmak için bir API ekleyin. (I4a2fd)
Hata Düzeltmeleri
- Bellek sızıntısı düzeltildi. (I3fc79, b/202989046)
Sürüm 1.0.0-beta02
1 Eylül 2021
androidx.window:window-*:1.0.0-beta02
yayınlanır. 1.0.0-beta02 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Deneysel API'lere ek açıklama eklemek için deneysel ek açıklama ekleyin. (I9f1b6)
- Rect kabul eden bir test FoldingFeature oluşturmak için bir test yöntemi ekleyin. Bu, gerçek bir etkinlik yerine Robolectric kullanırken test etmeyi kolaylaştırır. (Id1cca)
Sürüm 1.0.0-beta01
18 Ağustos 2021
androidx.window:window-*:1.0.0-beta01
yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Eski sabitler kaldırıldı ve
FoldingFeature
bir arayüz haline getirildi.
API Değişiklikleri
- Eski sabitleri kaldırın ve FoldFeature'ı bir arayüz haline getirin. (I9a2d5)
Hata Düzeltmeleri
Test Core
kitaplığına bağlı kitaplıklar1.4.0
sürümüne yükseltildi ve artık Android platform S sürümüyle çalışacak. (I88b72, b/189353863)
Sürüm 1.0.0-alpha10
4 Ağustos 2021
androidx.window:window-*:1.0.0-alpha10
yayınlanır. 1.0.0-alpha10 sürümü bu taahhütleri içerir.
Yeni Özellikler
- WindowInfoRepo dosyasını WindowInfoRepository olarak yeniden adlandırın ve ilgili sınıfları / dosyaları düzenleyin.
- Değer zaman içinde değiştiğinden, mevcut pencere metriklerini WindowInfoRepository'da bir akışa dönüştürün.
- WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
- Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleme
- Sınıfları destekledikleri özelliklere göre gruplandıracak şekilde paketleri güncelleyin.
API Değişiklikleri
- ActivityExt dosyasını ActivityExtensions olarak yeniden adlandırın. Repo yerine Repository olarak değiştirin. (I61a16)
- Sınıfların paketlerini güncelleyin. (I23ae2)
- WindowMetrics'i WindowInfoRepo'dan kaldırın (I24663)
- WindowManager'ı kaldırın ve WindowInfoRepo'yu kullanın
- WindowBackend'i dahili hale getirin. (I06d9a)
- Pencere metriklerini Flow'a dönüştürün.
- Java bağdaştırıcısı WindowInfoRepoCallbackAdapter olarak yeniden adlandırıldı
- Daha fazla deneysel API 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 (If4cff)
Hata Düzeltmeleri
- Çekirdek kitaplığın kaldırıldığı ProGuard hatası düzeltildi.
- WindowLayoutInfo'nun ek abonelere teslim edilmemesine neden olan hata düzeltildi.
- Yapılandırma değişikliklerinin katlama özelliği güncellemelerini tetiklemediği hatayı düzeltme
Sürüm 1.0.0-alpha09
30 Haziran 2021
androidx.window:window-*:1.0.0-alpha09
yayınlanır. 1.0.0-alpha09 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Tam sayı sabitlerini sınırsız enum'lara değiştirin.
- Test katlama özellikleri oluşturmak için bir test yardımcı programı ekleyin.
API Değişiklikleri
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
occlusionMode
olan önceki oran,occlusionType
olarak değişti.
Hata Düzeltmeleri
- Veri akışlarının birden fazla tüketicisini eklerken ilk değeri yayınlayın.
Sürüm 1.0.0-alpha08
16 Haziran 2021
androidx.window:window-*:1.0.0-alpha08
yayınlanır. 1.0.0-alpha08 sürümü bu taahhütleri içerir.
Yeni Özellikler
- WindowInfoRepository kullanılırken test etmeyi kolaylaştırmak için bir test yapısını kullanıma sunduk. DisplayFeatures ve WindowMetrics hakkında bilgi edinmek için WindowInfoRepository'yi kullanın. (I57f66, Ida620)
Sürüm 1.0.0-alpha07
2 Haziran 2021
androidx.window:window-*:1.0.0-alpha07
yayınlanır. 1.0.0-alpha07 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Temel pencere kitaplığını Kotlin'e taşıyın. Gelecekte, asenkron verileri göstermek için coroutine'leri ve askıya alma işlevlerini kullanacak.
- WindowMetrics ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak WindowInfoRepo'yu ekleyin.
- Geri çağırma işlevlerini kaydetmek ve kaydını kaldırmak için Java uyumlu API'leri göstermek üzere yeni
window-java
yapı. - RxJava'ya uyarlanmış API'leri göstermek için yeni
window-rxjava2
vewindow-rxjava3
yapıları.
API Değişiklikleri
- Bağımlılıkları tek tip olarak sağlamak için
WindowServices
ekleyin.- Pencere düzeni bilgilerini kullanmak için coroutine 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 etmek için yeni bir 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ınlanır. 1.0.0-alpha06 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kotlin'e geçiş işlemimiz başladı ve sonraki sürümde tamamlanacak.
- DeviceState, herkese açık API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'i kullanın.
- Şu anda hiçbir kullanım alanında desteklenmediği için
STATE_FLIPPED
, FoldingFeature durumlarından kaldırıldı. - Ayrıca, desteği sonlandırılmış 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
oluşturucu kaldırıldı. (I61fa4)DeviceState
, herkese açık API'den kaldırıldı. Bunun yerineFoldingFeature
kullanın. (Id6079)- Cihaz durumu geri çağırma işlevini uzantılardan kaldırın. (I5ea83)
- FoldingFeature öğesinden
STATE_FLIPPED
'ü kaldırın. (I9c4e1) - Desteği sonlandı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ınlanır. 1.0.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
Uygulamaların, özelliğin ayrılıp ayrılmadığını ve engelleyip engellemediğini belirleyebilmesi ve menteşenin yönünü belirleyebilmesi için FoldingFeature'a kolaylık yöntemleri ekledik. Ayrıca menteşe türünü de gizliyoruz.
WindowManager'dan senkronize okuma yöntemlerini kaldırıyoruz. Anlamlı bir yarış koşulu olduğundan senkronize okuma yöntemleri hatalara yatkındır. WindowLayoutInfo ile ilgili güncellemeler almak için dinleyiciler ve geri çağırmalar kaydedin.
API Değişiklikleri
- FoldingFeatures ile çalışmak için kolaylık yöntemleri ekleyin (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ınlanır. 1.0.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmadığı bir hata düzeltildi. Şimdi boş bir WIndowLayoutInfo yayınlıyoruz.
- Uygulama arka plandayken menteşe durumu değişirse durumun düzgün şekilde güncellenmemesine yol açan hata düzeltildi. Artık durum tutarlı olmalıdır.
- Proguard dosyalarımızı, çalışma zamanındaki bağımlılıklardan gelen uyarıları yoksayacak şekilde güncelleyin.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer gönderir. (Ide935)
Sürüm 1.0.0-alpha03
18 Şubat 2021
androidx.window:window:1.0.0-alpha03
yayınlanır. 1.0.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer gönderin. Bu sayede kitaplığı daha fazla cihazda kullanabilirsiniz. API'ler asenkron olduğundan uygulamaların bazı savunma amaçlı kodlar yazması ve zaman aşımı sonrasında varsayılan bir değer yayınlaması önerilir. OEM uygulamalarıyla ilgili herhangi bir garanti veremiyoruz ve ilk değer gecikebilir.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer gönderir. (Ide935)
Sürüm 1.0.0-alpha02
27 Ocak 2021
androidx.window:window:1.0.0-alpha02
yayınlanır. 1.0.0-alpha02 sürümü bu taahhütleri içerir.
Yeni Özellikler
API'yi kolaylaştırmak ve hataları azaltmak için bazı API'lerin desteğini sonlandırdık. WindowManager'dan senkronize okuma işlemlerinin kaldırılması ve DeviceState için desteğin sonlandırılması, bu tür örneklerden bazılarıdır. Eşzamanlı okuma işlemleri yarış koşullarına yol açabilir ve yanlış kullanıcı arayüzüne sahip olabilir.
DisplayFeature'ı, diğer özelliklerin ileride uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz FoldingFeature. Bu özellik artık ekran katlama veya menteşeyi temsil ediyor. Bu, DeviceState yerine menteşenin durumunu da içerir.
WindowMetrics, geliştiricilere bir pencereyle ilgili metrikleri (ör. ekrandaki konumu ve boyutu ve sistem içe yerleştirilmeleri) sorgulamak için basit bir yol sunmak amacıyla Android 11'de kullanıma sunulmuştur. 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 taşıdık. WindowMetrics,
WindowManager#getCurrentWindowMetrics()
ve WindowManager#getMaximumWindowMetrics() API'leri aracılığıyla elde edilebilir.
API Değişiklikleri
- Sonraki alfa sürümünde (Ib7cc4) kaldırılacak API'lerin desteğini sonlandırma
ExtensionInterface
'ü, açık etkinlik referanslarını kabul edecek şekilde günceller. (I07ded)- WindowMetrics API'yi tanıtıyor. (I3ccee)
- WindowManager'dan senkronize okuma yöntemlerini kaldırma (I69983)
- ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)
Hata Düzeltmeleri
ExtensionInterface
API'lerini görsel bağlamları kabul edecek şekilde güncelleyin. (I8e827)
Harici Katkı
- Verilere daha kolay erişebilmek 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 taahhütleri içerir.
Bu, Window Manager kitaplığının ilk sürümüdür.
Yeni özellikler
DisplayFeature
: Bu yeni API, sürekli düz ekran yüzeylerindeki menteşe veya kıvrım gibi kesintileri tanımlarDeviceState
: Bu yeni API, tanımlanmış duruşların listesinden telefonun mevcut duruşunu sağlar (ör.CLOSED
,OPENED
,HALF_OPENED
vb.).