WindowManager
Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
---|---|---|---|---|
2 Temmuz 2025 | 1.4.0 | - | 1.5.0-beta01 | - |
Bağımlılıkları bildirme
WindowManager'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposu başlıklı makaleyi okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.window:window:1.4.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.4.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.4.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.4.0" // For testing implementation "androidx.window:window-testing:1.4.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.4.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.4.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.4.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.4.0") // For testing implementation("androidx.window:window-testing:1.4.0") }
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.5
Sürüm 1.5.0-beta01
2 Temmuz 2025
androidx.window:window-*:1.5.0-beta01
iptal edilir. 1.5.0-beta01 sürümü bu commit'leri içerir.
Sürüm 1.5.0-alpha02
7 Mayıs 2025
androidx.window:window-*:1.5.0-alpha02
iptal edilir. 1.5.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
- Büyük ve çok büyük boyutlar için
WindowSizeClass
ayrılma noktaları ekleyin. (I40d85) WindowMetrics
hesaplamasını Uygulama Bağlamı'na genişletin. (I8eeeb, b/360934048)WindowLayoutInfo
öğesine doğrudan erişimi etkinleştirmek için bir Getter sağlayın (Ie9513)- Yerleştirme durumunu otomatik olarak kaydetmek ve uygulama işlemi yeniden başlatıldığında yerleştirme durumunu otomatik olarak geri yüklemek için API'yi kullanıma sunma. (Ie0295)
- Deneysel
WindowInsets
API'yi kaldırın. (I68a71) - Birkaç yapımcıyı gizleme (I87b8d)
Hata Düzeltmeleri
- Bazı durumlarda
EmbeddingRule
farklıhashCode
döndürme sorunu düzeltildi. (I748cc)
Sürüm 1.5.0-alpha01
12 Mart 2025
androidx.window:window-*:1.5.0-alpha01
iptal edilir. 1.5.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
- 1.5.0 sürümünün ilk yayını.
Sürüm 1.4
Sürüm 1.4.0
20 Mayıs 2025
androidx.window:window-*:1.4.0
iptal edilir. 1.4.0 sürümü bu commit'leri içerir.
1.3.0 sürümünden beri yapılan önemli değişiklikler
- Etkinlik Yerleştirme
- Başlatma animasyonlarını özelleştirmeye yönelik API
- Etkileşimli Ayırıcı
ActivityStack
Sabitleme- Tam Ekran İletişim Kutusu Karartma
- Yerleştirilmiş Etkinlik Penceresi Bilgileri Geri Çağırma İşlevi
- İyileştirilmiş
ActivityStack
Yönetimi - Etkinliği belirtilen bir
ActivityStack
içine başlatma
WindowMetricsCalculator
- Test edilebilirlik desteğini iyileştirme
WindowMetrics
withDp
veheightDp
değerlerini hesaplamanın kolay yolları- Sınır kontrolünü
isAtLeast
olarak güncelleyin ve yeni değerler eklemeyi desteklemek için alt sınırları kullanın.
WindowSizeClass
WindowMetrics
kaynağından hesaplama yöntemi ekleme
WindowInfoTracker
- Cihazda desteklenen duruşları algılamak için API ekleyin
Sürüm 1.4.0-rc02
23 Nisan 2025
androidx.window:window-*:1.4.0-rc02
iptal edilir. 1.4.0-rc02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
ActivityEmbedding
için ProGuard kilitlenmesini düzeltin.
Sürüm 1.4.0-rc01
12 Mart 2025
androidx.window:window-*:1.4.0-rc01
iptal edilir. 1.4.0-rc01 sürümü bu commit'leri içerir.
Yeni Özellikler
WindowSizeClass
API'sinde yapılan güncellemeler.- Etkinlik yerleştirme API'lerinde yapılan güncellemeler.
Sürüm 1.4.0-beta02
12 Şubat 2025
androidx.window:window-*:1.4.0-beta02
iptal edilir. 1.4.0-beta02 sürümü bu commit'leri içerir.
Yeni Özellikler
- Yalnızca mülkte bulunan ancak alıcıda bulunmayan bir ek açıklamayı düzeltin.
Sürüm 1.4.0-beta01
15 Ocak 2025
androidx.window:window-*:1.4.0-beta01
iptal edilir. 1.4.0-beta01 sürümü bu commit'leri içerir.
Yeni Özellikler
ActivityEmbedding
animasyonlarının özelleştirilmesine izin vermek için API ekleyin.- Pencere metriklerinin sahtesini oluşturmaya izin vermek için
WindowMetricsCalculator
test API'lerini genişletin.
API Değişiklikleri
- Birkaç yapımcıyı gizleme (I87b8d)
- Uygulamaların
ActivityEmbedding
animasyonlarını özelleştirmesine izin ver (If31a8) watchosDeviceArm64
KMP hedefi ve hedef kotlin 1.9 için destek eklendi (Icf15d, b/364652024)WindowMetricsCalculator
API'lerini kullanıma sunun. (I1cebf)
Hata Düzeltmeleri
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenini kullanmalıdır:
-Xjspecify-annotations=strict
(bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Ie69ac, b/326456246)
Sürüm 1.4.0-alpha05
16 Ekim 2024
androidx.window:window-*:1.4.0-alpha05
iptal edilir. 1.4.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
WindowMetrics
'denwidthDp
veheightDp
almak için kolaylık işlevleri ekleyin.
API Değişiklikleri
widthDp
veheightDp
öğeleriniWindowMetrics
listesine ekleyin. (Ide026)- Deneysel
WindowInsets
API'yi kaldırın. (I68a71) - Sınır kontrolü yöntemi adlarını
isAtLeast
olarak güncelleyin (Ib0ab7)
Sürüm 1.4.0-alpha04
2 Ekim 2024
androidx.window:window-*:1.4.0-alpha04
iptal edilir. 1.4.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
WindowSizeClass
değeriniWindowMetrics
değerinden hesaplama yöntemi eklendi. (874dba)- Netlik için
WindowSizeClass
yöntemlerinicontainsWidthDp
,containsHeightDp
vecontainsWindowSizeDp
olarak değiştirin. (fa760d) WindowAreaController
öğesini soyut temel sınıfa dönüştürün. (I90893)
Hata Düzeltmeleri
- Test oluştururken göreli sınırlara destek ekleyin
FoldingFeature
. (2e6b3e) WindowSizeClass
seçilirken karşılaşılan genel hata düzeltmeleri.
Sürüm 1.4.0-alpha03
18 Eylül 2024
androidx.window:window-*:1.4.0-alpha03
iptal edilir. 1.4.0-alpha03 sürümü bu commit'leri içerir.
Yeni Özellikler
WindowMetrics
değerindenWindowSizeClass
değerini elde etmek için bir yardımcı yöntem ekleyin. (I83f1f)isAtLeast
öğesinicontainsBreakpoint
olarak yeniden adlandırın. (I85b47)- Kayan öğeler kullanarak
computeWindowSizeClass
öğesine aşırı yükleme ekleyin. (I3dcb2, b/364677934, b/364677802, b/364680886)
Hata Düzeltmeleri
- Varsayılan
WindowSizeClass
kesme noktası kümesine eksik kesme noktaları ekleyin. - Bazı durumlarda kompakt boyutların doğru 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
iptal edilir. 1.4.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
Özel WindowSizeClass
desteği eklendi.
- Geliştiricilerin kendi oluşturucularını kullanabilmesi için
WindowSizeClass
oluşturucusunu açın. - Geliştiricilerin bir dizi
WindowSizeClass
değeri işleyebilmesi içinisAtLeast
yardımcı yöntemler ekleyin. - Kümedeki en iyi eşleşmeyi hesaplamak için
Set<WindowSizeClass>
'ya bir uzantı işlevi ekleyin. - Android'in önerdiği kesme noktaları için sabitler ekleyin.
- Android'in önerdiği ayırma noktalarına karşılık gelen ayırma noktası kümesini ekleyin.
API Değişiklikleri
WindowSizeClass
için sınırlama yöntemi adlarını güncelleyin. (If89a6)- Gelecekte yeni kesme noktası değerleri eklemeyi desteklemek için
WindowSizeClass
API'sini güncelleyin. Mutlak sınırlar yerine alt sınırları kullanırız ve geliştiricilerin birWindowSizeClass
işlerken alt sınır kontrollerini kullanmasını öneririz. MevcutWindowWidthSizeClass
veWindowHeightSizeClass
, daha fazla geliştirilmeyecekleri için kullanımdan kaldırılacak. (I014ce)
Sürüm 1.4.0-alpha01
7 Ağustos 2024
androidx.window:window-*:1.4.0-alpha01
iptal edilir. 1.4.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- ActivityStack Pinning, uygulamaların bir kapsayıcıdaki içeriği sabitlemesine ve gezinme işleminin diğer kapsayıcıdan bağımsız olmasına olanak tanır.
- Etkileşimli Ayırıcı, uygulamaların bölünmüş sunumda iki etkinlik arasında sabit veya sürüklenebilir bir ayırıcı göstermesine olanak tanır.
- Tam Ekran İletişim Kutusu Karartma, uygulamaların iletişim kutusu karartma alanını belirtmesine olanak tanır. Böylece, görev penceresinin tamamı veya yalnızca iletişim kutusunu gösteren kapsayıcı karartılabilir.
- Embedded Activity Window Info Callback, uygulamaların yerleştirilmiş 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. Bu sayede,
ActivityEmbedding
kullanıldığında geçiş animasyonunun kalitesi artırılır. - Geliştirilmiş ActivityStack Yönetimi,
ActivityEmbedding
kullanılırken uygulamalarınActivityStacks
üzerinde daha fazla kontrol sahibi olmasını sağlar. Örneğin: - Belirli bir
ActivityStack
içinde etkinlik başlatma ActivityStack
tamamlanıyor
API Değişiklikleri
Yeni bir API
WindowInfoTracker#supportedPostures
:- Cihazın katlanabilir cihazlar için TableTop modunu destekleyip desteklemediğini belirlemeye yarayan bir API. WindowAreaSessionPresenter#getWindow işlevini ekler
ActivityStack
sabitlemeyi desteklemek için API'ler ekleyin:SplitPinRule
sınıfSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
Etkileşimli ayırı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 ekleyinEmbeddingConfiguration
sınıfDimAreaBehavior
sınıfActivityEmbeddingController#setEmbeddingConfiguration
Yerleştirilmiş etkinlik penceresi bilgisi güncellemelerini almak için API'ler ekleyin
EmbeddedActivityWindowInfo
sınıfActivityEmbeddingController#embeddedActivityWindowInfo
Yerleştirme animasyonunun arka planını ayarlamak için API'ler ekleyin
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
ActivityStacks
işlemini tamamlamak için API ekleyinActivityEmbeddingController#finishActivityStacks
Lansman ayarlarını yapmak için API ekleme
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
Aşağıdaki API'ler kararlıdır ve artık deneysel değildir:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(SplitController#invalidateTopVisibleSplitAttributes konumundan taşındı)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
1.4 için API'ler ekleyin. (I56774)
Hata Düzeltmeleri
- Oturum etkin olduğunda ACTIVE yerine UNAVAILABLE döndürülen belirli cihazlardaki hata düzeltildi.
- Kararsız API desteği nedeniyle
vendorApiLevel
2 olan cihazlardatransferActivityToWindowArea
desteği kaldırıldı. - Etkinlik yerleştirme için sürüklenip tam ekran yapılabilen bölücüde sürükleyerek tam ekran yapma özelliğini etkinleştirmek üzere API'yi kullanıma sunduk. (I645c9)
- Uygulamaların,
SplitAttributes
için animasyon parametreleri aracılığıylaActivityEmbedding
animasyonlarını devre dışı bırakmasına izin verin. (Idc01a) - AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler için yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8 sürüm 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)
- Uzantıların
SplitAttributes
için animasyon parametreleri almasına izin verin. Böylece cihaz, bu parametreleri animasyon geçişlerinde kullanabilir. (Iede00) - Yer paylaşımı API'lerini gizleme (Ic4251)
- Bölme için sabit veya sürüklenebilir ayırıcıyı yapılandırmak üzere API'ler kullanıma sunuldu (Ia7a78).
WindowMetrics
öğesine yoğunluk eklendi (Id6723)SupportedPostures
almak için API ekleyin. (If557a)setLaunchingActivityStack
öğesini deneysel API'den (I191cf) kaldırmaActivityEmbeddingController#embeddedActivityWindowInfo
ile tanışın (I24312)#getToken
öğesini kullanımdan kaldırın ve#getActivityStackToken
öğesini ekleyin (Ie0471)embeddedActivityWindowInfo
akış API'si için geri çağırma bağdaştırıcısı kullanıma sunuldu (Ida77f).- overlayInfo akışı API'si için geri çağırma adaptörü ekleyin (I7264f)
- Test için
WindowSdkExtensionsRule
'ı kullanarakextensionsVersion
'ı geçersiz kılın. (Ifb928) - -
#setLaunchingActivityStack
kullanımlarıyla uyumlu olması için#setLaunchingActivityStack
'ı Bundle'a taşıyın.ActivityOptionsCompat
- Kullanıcılar
ActvityOptions
yerineactivityOptions.toBundle
değerini iletmelidir. #setLaunchingActivityStack(Activity)
öğesini kaldırın. Kullanıcılar,ActivityEmbeddingController#getActivityStac(Activity)
kullanmak içinActivityStack
'ye geçmeli veActivityStack
'yi#setLaunchingActivityStack
'ye iletmelidir. (Ie0ccc)
- Kullanıcılar
- - WM Jetpack ile uzantılar arasında iletişim kurmak için
ActivityStack.Token
veSpltInfo.Token
tanımlayıcılarını kullanıma sunun.- IBinder yerine Jeton almak/döndürmek için API'leri kullanımdan kaldırın/değiştirin. (I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacks
ile tanışın- Özellik
#invalidateVisibleActivityStacks
ile birleştirildiğindenSplitController#invalidateTopVisibleSplitAttributes
kaldırılıyor (I02ef5)
- Özellik
- - Yerleştirme yapılandırmasını ayarlamak için API ekleme. (I59a4a)
- - En çok kullanılan
ActivityStack
androidx.Window
API'lerini sabitleme/sabitliğini kaldırma- Demo uygulamasını, üstteki
ActivityStack
öğesinin sabitlenmesine/sabitlenmesinin kaldırılmasına izin verecek şekilde güncelleme (I24dd3)
- Demo uygulamasını, üstteki
#finishActivityStacks
veActivityEmbeddingOptions
'ı yeniden ekleme (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
iptal edilir. 1.3.0 sürümü bu commit'leri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
- Pencere boyutu sınıfları için Kotlin Multiplatform desteği.
Sürüm 1.3.0-rc01
14 Mayıs 2024
WindowManager
Jetpack 1.3, WindowSizeClass
özellikleri için Kotlin Multiplatform desteğinin yanı sıra çeşitli hata düzeltmeleri sunar.
androidx.window:window-*:1.3.0-rc01
iptal edilir. 1.3.0-rc01 sürümü bu commit'leri içerir.
Sürüm 1.3.0-beta02
1 Mayıs 2024
androidx.window:window-*:1.3.0-beta02
iptal edilir. 1.3.0-beta02 sürümü bu commit'leri 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
iptal edilir. 1.3.0-beta01 sürümü bu commit'leri içerir.
Sürüm 1.3.0-alpha03
6 Mart 2024
androidx.window:window-*:1.3.0-alpha03
iptal edilir. 1.3.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
WindowSizeClassUtil
daha odaklanmış yöntemlere bölünür. (Ie9292)WindowSizeClass#compute
geri yükleme (I21355, b/324293374)
Hata Düzeltmeleri
- Sağlanan bağlamın doğru şekilde sarmalanmaması nedeniyle oluşan kilitlenme sorunu düzeltildi. (94d10ce , b/318787482)
Sürüm 1.3.0-alpha02
7 Şubat 2024
androidx.window:window-*:1.3.0-alpha02
iptal edilir. 1.3.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kendi boyut sınıflarını kullanmak isteyen geliştiricilerin esnekliğini artırmak için Window Size Class API'lerinin 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ı işlevler ekleyin. Geliştiricilerin kendi seçicilerini yazabilmeleri için deneysel puanlama işlevleri ekleyin. Belirli bir sınır içinde en genişWindowSizeClass
öğesini seçmek için bir seçici uzantısı işlevi ekleyin. (I0c944) - Özel ayrılma noktaları 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 eklendi. (If67f4)
Hata Düzeltmeleri
- Kayan noktalı değer 0 olarak kısaltıldığında oluşan istisnayı düzeltir. (272ffac)
Sürüm 1.3.0-alpha01
15 Kasım 2023
androidx.window:window-*:1.3.0-alpha01
iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeature
oluşturmaya yönelik API'lerin testi artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamaya yönelik API'ler artık kararlı. WindowLayoutInfoPublisherRule
artıkUiContext
kaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTracker
raporları, katlama özelliği verileriniUiContext
parametrelerine aktarır.- Cihazdaki uzantı sürümünü gösterin.
- Kullanıcıların uygulama bazında geçersiz kılmaları için
WindowProperties
sabitleri:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— Sisteme, uygulamanın kullanıcıya yönelik en-boy oranı uyumluluğu geçersiz kılma özelliğini devre dışı bıraktığını bildirir.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— Sisteme, 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ı bildirir.
Sürüm 1.2
Sürüm 1.2.0
15 Kasım 2023
androidx.window:window-*:1.2.0
iptal edilir. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeature
oluşturmaya yönelik API'lerin testi artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamaya yönelik API'ler artık kararlı. WindowLayoutInfoPublisherRule
artıkUiContext
kaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTracker
raporları, katlama özelliği verileriniUiContext
parametrelerine aktarır.- 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
iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeature
oluşturmaya yönelik API'lerin testi artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamaya yönelik API'ler artık kararlı. WindowLayoutInfoPublisherRule
artıkUiContext
kaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTracker
raporları, katlama özelliği verileriniUiContext
parametrelerine aktarır.- 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
iptal edilir. 1.2.0-beta04 sürümü şu commit'leri 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
iptal edilir. 1.2.0-beta03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Doğru şekilde çalışmak için belirli bir uzantı sürümü gerektiren API'ler için
RequiresApi
kontrolleri ekleyin. - Cihazdaki uzantı sürümünü kullanıma sunmak için bir API ekleyin.
API Değişiklikleri
- Gerekli pencere SDK'sı uzantı sürümünü herkese açık API'lerde açıklama olarak ekleyin.
- Etkinlik yerleştirme bileşenindeki
isXXXSupported
simgesini kaldırın. (Ie3dae)
- Etkinlik yerleştirme bileşenindeki
- Cihazdaki uzantı sürümünü bildirmek için
WindowSdkExtensions
'ı kullanıma sunuyoruz.- Gerekli minimum uzantı sürümünü belirtmek için
RequiresWindowSdkExtension
öğesini kullanıma sunuyoruz. (I05fd4)
- Gerekli minimum uzantı sürümünü belirtmek için
WindowAreaInfo#getCapability
değerini boş değer atanamaz yapar. (I17048)
Sürüm 1.2.0-beta01
26 Temmuz 2023
androidx.window:window-*:1.2.0-beta01
iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeature
oluşturmaya yönelik API'lerin testi artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamaya yönelik API'ler artık kararlı. WindowLayoutInfoPublisherRule
artıkUiContext
kaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTracker
raporları, katlama özelliği verileriniUiContext
parametrelerine aktarır.
API Değişiklikleri
- 1.3'te kararlı sürüm için API değişikliklerinin devam etmesine izin vermek üzere
WindowArea
API'lerini deneysel olarak işaretler (I857f5). - Uyumluluk bastırmayı açıklama eklemek için API dosyaları güncellendi (I8e87a, b/287516207)
Sürüm 1.2.0-alpha03
21 Haziran 2023
androidx.window:window-*:1.2.0-alpha03
iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kullanımdan kaldırılan API'lerin API yüzeyinden kaldırılması.
- Eşzamanlı ekranları desteklemek için API'ler ekleyin.
- Zorunlu yeniden boyutlandırma geçersiz kılma özelliğini devre dışı bırakmak 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.
- Activity Embedding ile ilgili birim testini desteklemek için
ActivityEmbeddingRule
kararlılığı sağlandı.
API Değişiklikleri
- Kullanımdan kaldırılan API'leri kaldırın (I18d39)
- Aynı anda birden fazla ekranın kullanılmasını destekleyin. (Ifcbb0)
Hata Düzeltmeleri
- Yeniden boyutlandırmayı zorunlu kılmak için kapsam dışında kalma uyumluluk özelliği ekleme (Ie7ab1)
SESSION_STATE_CONTENT_INVISIBLE
adlı uzantıyı, uzantılar arayüzünden kaldırır. (I6ed19)- Etkinlik yerleştirme ile ilgili birim testini desteklemek için
ActivityEmbeddingRule
kararlılığı sağlandı. (I8d6b6) - Minimum en boy oranı geçersiz kılma için devre dışı bırakma uyumluluk özelliği eklendi. (I66390)
- Desteği sonlandırılan WindowArea API'lerini kaldırır (Ieb67c).
- Yönlendirme 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önlendirme isteği döngüsünü yoksayan devre dışı bırakma uyumluluk özelliği ekleme (I0a7a2)
- Özelliğin zaten etkin olduğunu belirtmek için
WindowAreaComponent#STATUS_ACTIVE
simgesini ekleyin. (I62bc3) RearDisplayPresentationMode
API'lerini ekleyin (I0401c)- Kararlı sürüm için arka plan rengini kaldırma API'si. (I34c3e)
- Pencere Alanı API'lerini gizleyin. (I39de0)
SplitInfo
içindeSplitController
'yi geçersiz kılacak yöntemler ekleyin.SplitInfo
veActivityStack
için kopya oluşturmak üzere test yöntemleri ekleyin. (Icd69f)ActivityRule.Builder
için etiketi isteğe bağlı hale getirin. (Ib0b44)RatioSplitType
,ExpandContainersSplit
veHingeSplitType
öğelerini kaldırın. Bu kullanıcılar artıkSplitType
.#splitEqually()
,#expandContainers()
ve#splitByHinge
değerlerini sabitSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
veSPLIT_TYPE_HINGE
değerleriyle değiştirin.- Yedek menteşe bölünme türü ayarlama işlevini kaldırın. Mevcut cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamıyorsa üst görev kapsayıcısı eşit şekilde bölünür. Yedek bölme türünü özelleştirmek için
SplitController#setSplitAttributesCalculator
simgesini kullanın. (Ifcc59)
add
/removeSplitCallback
öğesini kullanımdan kaldırınadd
/removeSplitCallback
öğesiniSplitControllerCallbackAdapter
konumuna taşımaFlow
listesini almak içinSplitInfo
desteği ekleyin (I7f1b6)
ActivityEmbeddingController
için test kuralı ekleyin (I42e9b)ActivityOptionsCompat
dosyasınıActivityEmbeddingOptions
olarak yeniden adlandırma (I89301)- Etkinlik yerleştirmenin kullanılabilir olup olmadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) DEFAULT
değerini daha iyi temsil etmek içinSplitAttributes.BackgroundColor
özelliğini kullanıma sunuyoruz. Opak olmayan animasyon arka plan renginin desteklenmediği, bu nedenle opak olmayan renklerin varsayılan olarak kabul edileceği (yani mevcut tema penceresi arka plan renginin kullanılacağı) netleştirildi. (Ic6b95)alwaysAllow()
vealwaysDisallow()
öğeleriniALWAYS_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 (Id4a6e) doğrulayabilmesi için sahteSplitAttributesCalculatorParams
oluşturma yöntemi ekleyin. WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
veWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
ekleme (I66c7f)
Sürüm 1.2.0-alpha02
7 Haziran 2023
androidx.window:window-*:1.2.0-alpha02
iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Belirtilmemiş katlama özellikleri için sabit bir değer içerecek şekilde test API'sini güncelleyin.
WindowLayoutInfoPublishRule
ile geçersiz kılma, bağlama dayalı API dahil olmak üzerewindowLayoutInfo
'nin tüm değerlerini geçersiz kılar.
API Değişiklikleri
- Belirtilmeyen merkezden katlama özelliği için sabit ekleyin. (I7530c)
Hata Düzeltmeleri
WindowLayoutInfoPublishRule
uygulamasını,WindowLayoutInfo
tabanlıContext
üzerinde geçersiz kılmaları destekleyecek şekilde güncelleyin. (I2037a)
Sürüm 1.2.0-alpha01
24 Mayıs 2023
androidx.window:window-*:1.2.0-alpha01
iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
Etkinlik yerleştirme ve WindowLayoutInfoTracker
ile ilgili test API'lerini kararlılık kazandırın. 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ı işlevler kararlı sürüme yükseltildi.
API Değişiklikleri
- Etkinlik yerleştirme ile ilgili birim testini desteklemek için
ActivityEmbeddingRule
kararlılığı sağlandı. (I8d6b6) WindowMetrisCalculatorTestRule
, JVM testleri için sahte metriklerin kullanılmasına olanak tanıyan kararlı bir sürümdür. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.- JVM testini desteklemek için
WindowLayoutInfo
test API'lerini kararlı hale getirin. (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
iptal edilir. 1.1.0 sürümü şu commit'leri içerir.
1.0.0 sürümünden beri yapılan önemli değişiklikler
Etkinlik Yerleştirme
- Uygulama manifest dosyasında
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
,<application>
etiketinin boole özelliği olarak eklendi. - Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi vermek 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 sınıfı eklendi.SplitController
, birkaç modül olarak yeniden düzenlendi: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'leri eklendi:addRule()
: Bir kural ekler veya aynı etikete sahip 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()
: Kuralları XML kural tanımlarından ayrıştırır.
- Tüm modüllerin
#getInstance()
yöntemiyle başlatılması için bağlam 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()
API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek içinSplitAttributesCalculator
EmbeddingRule#tag
alanı eklendi.SplitRule
adresindeki API güncellemeleri:defaultSplitAttributes
eklendi: Bölünmüş bir düzenin varsayılan bölünmüş düzenini tanımlar;splitRatio
velayoutDirection
yerine kullanılır.splitRatio
vesplitLayoutDirection
XML özelliklerinindefaultSplitAttributes
diline çevirisi eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız piksel (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.- Varsayılan değeri
ALWAYS_ALLOW
olanmaxAspectRatioInHorizontal
özelliği eklendi. - Varsayılan değeri 1,4 olan
maxAspectRatioInPortrait
eklendi. - Sonlandırma davranışı sabitlerini değiştirmek için tanımlanmış
FinishBehavior
iç içe sınıfı. SplitPairRule
veSplitPlaceholderRule
öğesinin Builder iç içe yerleştirilmiş sınıfına özellik değişiklikleri uygulandı.
- Bölünmeyle ilgili ek bilgiler sağlamak için
SplitInfo#getSplitRatio()
yerineSplitInfo#getSplitAttributes()
kullanıldı.
WindowLayout
WindowInfoTracker
'ya deneysel etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.WindowMetricsCalculator
'ya deneysel etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma adımları
- Etkinliklerin bölünmüş ekranlarda gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek isteyen uygulamalar, manifest
<application>
etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
özelliğini eklemelidir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Bu, sistemin bir uygulama için bölünmüş ekran davranışlarını önceden optimize etmesine olanak tanır. SplitInfo
oranı- Mevcut bölünmenin yığılmış olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Cari 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ölünmenin yığılmış olup olmadığını kontrol edin:
- SplitController taşıma işlemleri:
SplitController.getInstance()
,SplitController.getInstance(Context)
olarak değişir.SplitController.initialize(Context, @ResId int)
,RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
olarak değişir.SplitController.getInstance().isActivityEmbedded(Activity)
,ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
olarak değişir.SplitController.getInstance().registerRule(rule)
,RuleController.getInstance(Context).addRule(rule)
olarak değişir.SplitController.getInstance().unregisterRule(rule)
,RuleController.getInstance(Context).removeRule(rule)
olarak değişir.SplitController.getInstance().clearRegisteredRules()
,RuleController.getInstance(Context).clearRules()
olarak değişir.SplitController.getInstance().getSplitRules()
,RuleController.getInstance(Context).getRules()
olarak değişir.
SplitRule
mülk taşıma işlemleri:minWidth
veminSmallestWidth
artık pikseller yerine dp birimlerini kullanıyor. Uygulamalar şu çağrıyı kullanabilir:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
veya yalnızcaminWith
piksel cinsindendisplayMetrics#density
ile bölebilir.
- Sonlandırma davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER
,FinishBehavior.NEVER
olarak değişir.FINISH_ALWAYS
,FinishBehavior.ALWAYS
olarak değişir.FINISH_ADJACENT
,FinishBehavior.ADJACENT
olarak değişir.
- Düzen yönü
SplitAttributes.LayoutDirection
'ya taşınmalıdır:ltr
,SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
olarak değişir.rtl
,SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
olarak değişir.locale
,SplitAttributes.LayoutDirection.LOCALE
olarak değişir.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
'ye taşınmalıdır.
SplitPairRule.Builder
migrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
,kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
olarak değiştirildisetLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
,kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
olarak değiştirildisetFinishPrimaryWithSecondary
vesetFinishSecondaryWithPrimary
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.- Dikey cihazlarda bölünmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
simgesini kullanın.
SplitPlaceholder.Builder
migrations:- Yalnızca
filters
veplaceholderIntent
parametrelerini içerir. Diğer özellikler ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder migrations" (SplitPairRule.Builder taşımaları) başlıklı makaleye bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
enum benzeri sabitlerini alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değişir:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Dikey cihazlarda bölünmeleri 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
iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
ActivityEmbedding
'yı 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
iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Dahili düzeltmeler ve temizleme.
Sürüm 1.1.0-beta01
22 Mart 2023
androidx.window:window-*:1.1.0-beta01
iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.
Etkinlik Yerleştirme
- Uygulama manifest dosyasında
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
,<application>
etiketinin boole özelliği olarak eklendi. - Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi vermek 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 sınıfı eklendi.SplitController
, birkaç modül olarak yeniden düzenlendi: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ü:SplitController
API'leri kaldırıldı:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API'leri eklendi:addRule()
: Bir kural ekler veya aynı etikete sahip 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()`: Kuralları XML kural tanımlarından ayrıştırır.
- Tüm modüllerin
#getInstance()
yöntemiyle başlatılması için bağlam 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
adresindeki API güncellemeleri:defaultSplitAttributes
eklendi: Bölünmüş bir düzenin varsayılan bölünmüş düzenini tanımlar;splitRatio
velayoutDirection
yerine kullanılır.splitRatio
vesplitLayoutDirection
XML özelliklerinindefaultSplitAttributes
diline çevirisi eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız piksel (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.- Varsayılan değeri
ALWAYS_ALLOW
olanmaxAspectRatioInHorizontal
özelliği eklendi. - Varsayılan değeri
1.4
olanmaxAspectRatioInPortrait
özelliği eklendi. - Sonlandırma davranışı sabitlerini değiştirmek için tanımlanmış
FinishBehavior
iç içe sınıfı. - Mülk değişikliklerini
SplitPairRule
veSplitPlaceholderRule
'ninBuilder
iç içe yerleştirilmiş sınıfına uyguladı.
- Bölünmeyle ilgili ek bilgiler sağlamak için
SplitInfo#getSplitRatio()
yerineSplitInfo#getSplitAttributes()
kullanıldı.
WindowLayout
WindowInfoTracker
'ya 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ı
- Etkinliklerin bölünmüş ekranlarda gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek isteyen uygulamalar, manifest
<application>
etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
özelliğini eklemelidir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Bu, sistemin bir uygulama için bölünmüş ekran davranışlarını önceden optimize etmesine olanak tanır. SplitInfo
oranı- Mevcut bölünmenin yığılmış olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Cari 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ölünmenin yığılmış olup olmadığını kontrol edin:
SplitController
migrations:SplitController.getInstance()
,SplitController.getInstance(Context)
olarak değişir.SplitController.initialize(Context, @ResId int)
,RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
olarak değişir.SplitController.getInstance().isActivityEmbedded(Activity)
,ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
olarak değişir.SplitController.getInstance().registerRule(rule)
,RuleController.getInstance(Context).addRule(rule)
olarak değişir.SplitController.getInstance().unregisterRule(rule)
,RuleController.getInstance(Context).removeRule(rule)
olarak değişir.SplitController.getInstance().clearRegisteredRules()
,RuleController.getInstance(Context).clearRules()
olarak değişir.SplitController.getInstance().getSplitRules()
,RuleController.getInstance(Context).getRules()
olarak değişir.
SplitRule
mülk taşıma işlemleri:minWidth
veminSmallestWidth
artık pikseller yerine dp birimlerini kullanıyor. Uygulamalar şu çağrıyı kullanabilir:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
veya yalnızcaminWith
piksel cinsindendisplayMetrics#density
ile bölebilir.
- Sonlandırma davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER
,FinishBehavior.NEVER
olarak değişir.FINISH_ALWAYS
,FinishBehavior.ALWAYS
olarak değişir.FINISH_ADJACENT
,FinishBehavior.ADJACENT
olarak değişir.
- Düzen yönü
SplitAttributes.LayoutDirection
'ya taşınmalıdır:ltr
,SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
olarak değişir.rtl
,SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
olarak değişir.locale
,SplitAttributes.LayoutDirection.LOCALE
olarak değişir.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
'ye taşınmalıdır.
SplitPairRule.Builder
migrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
,kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
olarak değiştirildisetLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
,kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
olarak değişir.setFinishPrimaryWithSecondary
vesetFinishSecondaryWithPrimary
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.- Dikey cihazlarda bölünmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
simgesini kullanın.
SplitPlaceholder.Builder
migrations:- Yalnızca
filters
veplaceholderIntent
parametrelerini içerir. Diğer özellikler ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder migrations" (SplitPairRule.Builder taşımaları) başlıklı makaleye bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
enum benzeri sabitlerini alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değişir:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Dikey cihazlarda bölünmeleri 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
iptal edilir. 1.1.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
WindowLayoutInfo
değerini kullanıcı arayüzü bağlamından alma işleminin deneysel sürümünü kullanıma sunma.
API Değişiklikleri
- Etkinlik yerleştirmenin kullanılabilir olup olmadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) - Kullanıcı arayüzü bağlamı
WindowLayoutInfo
API'sini deneysel olarak kullanıma sunun. (I58ee0) WindowAreaController
ve API'leri kullanıma sunarakRearDisplay
modunun etkinleştirilmesini ve mevcut pencerenin arka kamerayla hizalanmış ekrana taşınmasını sağlar. (Iffcbf)- Varsayılan arka plan rengini güncelleyin. (I1ac1b)
SplitAttributes
parametrelerini ekleyin. (I18bdd)SplitRule
,SplitAttributes
,SplitAttributesCalculator
için API'ler ekleyin. (I92d23)maxAspectRatio
ile ilgili API'leri iyileştirme:alwaysAllow()
vealwaysDisallow()
öğeleriniALWAYS_ALLOW
veALWAYS_DISALLOW
ile değiştirin.- @see ile ilgili API belgelerini bağımsız belgelerle güncelleyin. (I3057b)
- Aşağıdaki oluşturucular, uygulamalar tarafından çağrılmaması gerektiğinden herkese açık API'lerden kaldırıldı.
SplitInfo
oluşturucuActivityStack
oluşturucu (Ide534)
SplitRule
artıkmaxAspectRatioInPortrait/Landscape
sürüyor. Yalnızca üst sınırlardaki en-boy oranı, istenenmaxAspectRatio
değerinden küçük veya bu değere eşit olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)RuleController#parseRules
değerini statik (I785df) olarak değiştirme- ActivityEmbedding ile ilgili API'leri iyileştirme
- API adlandırmasını hizalama - Birden fazla örnek için ekleme/kaldırma işlemlerini kullanın:
registerRule
,addRule
olarak değiştirildiunregisterRule
,removeRule
olarak değiştirildiActivityRule
bir bölme kuralı olmadığındangetSplitRules
yerinegetRules
koyun- Bir dizi kural belirlemek için
RuleController#setRules
ekleyin - Kural çıkarma ile ilgili API'leri
SplitController
öğesinden tek öğeliRuleController
öğesine taşıyın. Bu özellikler: addRule
removeRule
getRules
setRules
clearRules
parseRules
#isActivityEmbedded
dosyasınıSplitController
konumundan tek öğeliActivityEmbeddingController
konumuna çıkarın. Bu özellikler:isActivityEmbedded
SplitController#initialize
öğesini kaldırın. XML dosyasından kural ayarlamak için lütfenRuleController#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)
- Artık statik kurallar ile çalışma zamanı kuralları arasında ayrım yapmıyoruz. Bununla birlikte,
#clearRules
sonuçlarını çağırmak, statik XML kural tanımlarıyla veya çalışma zamanında kaydedilmiş olmalarından bağımsız olarak tüm kuralları temizler.SplitController#clearRegisteredRules
için eski davranışı kullanmak istiyorsanız lütfen XML kaynakları kimliğiyleRuleController#parseRules
işlevini çağırın ve kuralları tekrar ayarlamak içinRuleController#setRules
işlevini ç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 için yeniden düzenleme yaparak minimum boyutları isteğe bağlı hale getirin. (I95f17)
SplitController
öğesini başlatmak için bir bağlam iletme (I42549)SplitRule#layoutDir
,#layoutDirection
olarak,SplitRule Builder#setLayoutDir
iseBuilder#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
iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
ActivityEmbedding
içinActivityStack
öğesinin boş olup olmadığını belirlemeye yarayan bir yöntem sunun.ActivityEmbedding
API'lerinden deneysel API etiketleri kaldırıldı.ActivityRule
oluşturucuyu gizleyin. ÇünküBuilder
, oluşturma için tercih edilen yöntemdir.WindowInsets
üzerindeWindowMetrics
elde etmek için deneysel bir yöntem ekleyin.- Yer tutucunun tamamlanmasını önlemek için
SplitPlaceholderFinishBehavior
güncelleyin. Yer tutucuyu tamamlama işlemi, kafa karıştırıcı davranışlara neden oluyordu.
API Değişiklikleri
- Eğlenceli
isEmpty
işlevini değiştirmek için valisEmpty
işlevini herkese açık yapın. ActivityStack
parametre etkinlikleriniactivitiesInProcess
olarak yeniden adlandırın. (Ia5055)ActivityFilter#matchesClassName
veActivityFilter#matchesClassNameOrWildCard
öğelerini kafa karıştırıcı oldukları için kaldırın.- Arayanın farklı filtreleri ayırt edebilmesi için
ActivityFilter#componentName
abdActivityFilter#intentAction
ifadesini ekleyin (I41f22) @Deprecated
API'lerini deneysel API'den (I216b3) kaldırma- Etkinlik yerleştirme API'leri için
@ExperimentalWindowApi
simgesini kaldırın (I69ebe) ActivityRule
oluşturucusunu gizleyin, bunun yerine Builder'ı kullanın. (If4eb6)- Bir etkinliğin
ActivityFilter
'e dahil olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf) WindowMetrics
veWindowMetricsCalculatorCompat
sınıflarındaki değişiklikleri yansıtmak için API dosyalarını güncelleme (I667fe)ActivityEmbedding
özelliği Javadoc'u ve sınıf adını (Ia1386) güncelleme- AndroidManifest.xml'de kullanılacak
ActivityEmbedding
özellik etiketi adlarını ekleme (Id1ad4) - Yeni API'ler
SplitPlaceholderFinishBehavior
veSplitPlaceholderRule.finishPrimaryWithPlaceholder
eklendi. Bu API'ler, yer tutucu etkinliklerin ne zaman tamamlandığını ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcutSplitPlaceholderRule.finishPrimaryWithSecondary
API'sinin yerini alıyor. (I64647)
Hata Düzeltmeleri
WindowAreaController
ve API'leri kullanıma sunarakRearDisplay
modunun etkinleştirilmesini ve mevcut pencerenin arka kamerayla hizalanmış ekrana taşınmasını sağlar. (I388ab)
Sürüm 1.1.0-alpha03
27 Temmuz 2022
androidx.window:window-*:1.1.0-alpha03
iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Yerleştirme kurallarının varsayılan değerlerini güncelleyin.
API Değişiklikleri
- Yerleştirme kuralı özelliklerinin varsayılan değerlerini güncelleyin. (Ic4d35)
Sürüm 1.1.0-alpha02
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha02
iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için bağdaştırıcı kitaplıkları yayınlayın.
Sürüm 1.1.0-alpha01
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha01
iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için adaptörleri yayınlayın
Sürüm 1.1.0-alpha01
20 Nisan 2022
androidx.window:window:1.1.0-alpha01
iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Bir uygulamanın arka plana alınması durumunda katlama özelliklerinin kullanılmasını engelleyen 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ölümlerindeki 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
iptal edilir. 1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümünün temel özellikleri
WindowInfoTracker
veFoldingFeature
aracılığıyla katlanabilir telefonlar için destek.WindowMetricsCalculator
, mevcut WindowMetrics'i hesaplamaya yardımcı olur.
Sürüm 1.0.0-rc01
15 Aralık 2021
androidx.window:window-*:1.0.0-rc01
iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
WindowInfoTracker
aracılığıyla 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
iptal edilir. 1.0.0-beta04 sürümü şu commit'leri içerir.
Yeni Özellikler
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- Activity'yi WindowInfoTracker için açık bir yöntem bağımlılığı yapın.
- Robolectric kullanan geliştiricileri desteklemek için WindowMetricsCalculator'a basit bir TestRule ekleyin.
API Değişiklikleri
- Ayıklama uzantıları (I25a5f)
- add isEmpty in ActivityStack (I5a4e6)
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- java/rxjava/testing bağımlılıklarını eşleşecek şekilde güncelleyin. (I0da63)
- Basit bir WindowMetricsCalculator için test kuralı ekleyin. (Ibacdb)
Sürüm 1.0.0-beta03
27 Ekim 2021
androidx.window:window-*:1.0.0-beta03
iptal edilir. 1.0.0-beta03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Deneysel Activity Embedding API'leri eklendi. Bu ilk düzen sürümü, iki etkinliğin yan yana gösterilmesine olanak tanır.
API Değişiklikleri
- Doğru şekilde sağlayamadığımız için currentWindowMetrics API'si kaldırıldı. Lütfen bunun yerine WindowMetricsCalculator'ı kullanın (Icda5f).
- Uzantılar API'si güncellendi. (Ica92b)
- Etkinliklerin yerleştirilmesine ve üst görev penceresinde yan yana gösterilmesine olanak tanıyan yeni bir özellik için arayüz eklendi. (I5711d)
- WindowMetrics ve WindowLayoutInfo için oluşturucular 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
iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Deneysel API'leri açıklamak için deneysel ek açıklama ekleyin. (I9f1b6)
- Bir Rect kabul eden test FoldingFeature oluşturmak için test yöntemi ekleyin. Bu, gerçek bir Etkinlik yerine Robolectric'i 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
iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Eski sabitler kaldırıldı ve
FoldingFeature
bir arayüze dönüştürüldü.
API Değişiklikleri
- Eski sabitleri kaldırın ve FoldFeature'ı 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 S platform 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
iptal edilir. Version 1.0.0-alpha10 contains these commits.
Yeni Özellikler
- WindowInfoRepo'yu 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'deki bir Flow'a dönüştürün.
- WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
- Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleyin
- Paketleri, destekledikleri özelliğe göre sınıfları gruplandıracak şekilde güncelleyin.
API Değişiklikleri
- ActivityExt'i ActivityExtensions olarak yeniden adlandırın. Repo'yu Repository olarak değiştirin. (I61a16)
- Sınıflar için paketleri güncelleyin. (I23ae2)
- WindowInfoRepo'dan WindowMetrics'i kaldırın (I24663)
- WindowManager'ı kaldırıp WindowInfoRepo'yu kullanma
- WindowBackend'i dahili yapın. (I06d9a)
- Pencere metriklerini Flow'a dönüştürün.
- Java bağdaştırıcısını WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
- Deneysel API'lerin kullanılmaması için callbackFlow'u kaldırın. (Ia4d15)
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin.
- occlusionMode'dan occlusionType'a geçiş (If4cff)
Hata Düzeltmeleri
- Çekirdek kitaplığın kaldırılmasına neden olan 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 tetiklememesi hatası düzeltildi.
Sürüm 1.0.0-alpha09
30 Haziran 2021
androidx.window:window-*:1.0.0-alpha09
iptal edilir. Version 1.0.0-alpha09 contains these commits.
Yeni Özellikler
- Tam sayı sabitlerinden sınırsız numaralandırılmış türlere geçiş yapın.
- 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ına birden fazla tüketici eklerken başlangıç değerini yayınlayın.
Sürüm 1.0.0-alpha08
16 Haziran 2021
androidx.window:window-*:1.0.0-alpha08
iptal edilir. Version 1.0.0-alpha08 contains these commits.
Yeni Özellikler
- WindowInfoRepository kullanılırken test etmeyi kolaylaştırmak için bir test yapısı yayınlandı. 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
iptal edilir. 1.0.0-alpha07 sürümü şu commit'leri içerir.
Yeni Özellikler
- Temel pencere kitaplığını Kotlin'e taşıma. Gelecekte eşzamansız verileri kullanıma sunmak için eş yordamları 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ğırmaları kaydetmek ve kaydını silmek için Java dostu API'leri kullanıma sunan yeni
window-java
yapısı. - RxJava'ya uyarlanmış API'leri kullanıma sunmak 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 eş yordama dayalı API eklendi. (Iab70f)
- Temel pencere yöneticisi kitaplığını Kotlin'e taşıma. (Icca34)
Hata Düzeltmeleri
- Özellik sınırlarını temsil etmek için 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
iptal edilir. 1.0.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kotlin'e geçiş sürecimizi başlattık ve bir sonraki sürümde tamamlayacağız.
- DeviceState, herkese açık API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'ı kullanın.
- Şu anda hiçbir kullanım alanında desteklenmediği için
STATE_FLIPPED
, FoldingFeature durumlarından kaldırıldı. - Kullanımdan kaldırılan diğer API'ler de kaldırıldı.
API Değişiklikleri
- Kotlin'i bağımlılık olarak ekleme
- Çekirdek kitaplığı Kotlin'e taşıma (Idd995)
DisplayFeature
oluşturucu kaldırıldı. (I61fa4)DeviceState
, herkese açık API'den kaldırıldı. Bunun yerineFoldingFeature
kullanın. (Id6079)- Uzantılardan cihaz durumu geri aramasını kaldırın. (I5ea83)
STATE_FLIPPED
öğesini FoldingFeature'dan 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
iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
Uygulamaların, özelliğin ayırıp ayırmadığını, kapatıp kapatmadığını ve menteşenin yönünü belirleyebilmesi için FoldingFeature'a kolaylık sağlayan yöntemler ekledik. Ayrıca, menteşe türünü de gizliyoruz. Böylece
WindowManager'dan senkron okuma yöntemlerini kaldırıyoruz. Eşzamanlı okuma yöntemleri, örtülü bir yarışma durumu olduğundan 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ışmak için kolaylık yöntemleri ekleyin (Ie733f).
- WindowManager'dan eşzamanlı okuma yöntemlerini kaldırır (I96fd4).
Sürüm 1.0.0-alpha04
10 Mart 2021
androidx.window:window:1.0.0-alpha04
iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
- OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmamasına neden olan hata düzeltildi. Şimdi boş bir WindowLayoutInfo yayınlıyoruz.
- Uygulama arka plandayken menteşe durumu değiştiğinde durumun düzgün şekilde güncellenmemesine neden olan hata düzeltildi. Durum artık 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ş bir değer yayınlayın. (Ide935)
Sürüm 1.0.0-alpha03
18 Şubat 2021
androidx.window:window:1.0.0-alpha03
iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer yayınlayın. Bu sayede kitaplığı daha fazla cihazda kullanmak kolaylaşır. API'ler eşzamansız olduğundan, uygulamaların yine de bazı savunma kodları yazması ve zaman aşımından sonra varsayılan bir değer yayınlaması önerilir. OEM uygulamalarıyla ilgili herhangi bir garantimiz yoktur ve ilk değer gecikebilir.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer yayınlayın. (Ide935)
Sürüm 1.0.0-alpha02
27 Ocak 2021
androidx.window:window:1.0.0-alpha02
iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
API'yi kolaylaştırmak ve hataları azaltmak için bazı API'lerin desteğini sonlandırdık. WindowManager'dan senkron okuma işlemlerinin kaldırılması ve DeviceState'in desteğinin sonlandırılması bu değişikliklere örnek olarak verilebilir. Eşzamanlı okuma işlemleri yarış koşullarına yol açabilir ve kullanıcı arayüzü yanlış olabilir.
DisplayFeature'ı, diğer özelliklerin bundan sonra uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz, artık ekran katlamasını veya menteşeyi temsil eden FoldingFeature. Bu, DeviceState'in yerini alan menteşenin durumunu da içerir.
WindowMetrics, geliştiricilere bir pencereyle ilgili metrikleri (ör. ekrandaki konumu ve boyutu ile sistem yerleşimleri) sorgulamak için basit bir yöntem sunmak üzere Android 11'de kullanıma sunulmuştur. Bu sürümde API'yi geriye dönük olarak taşıdık. Böylece geliştiriciler WindowMetrics'ten yararlanabilir ve eski Android sürümlerini desteklemeye devam edebilir. WindowMetrics,
WindowManager#getCurrentWindowMetrics()
ve WindowManager#getMaximumWindowMetrics() API'leri aracılığıyla elde edilebilir.
API Değişiklikleri
- Bir sonraki alfa sürümünde (Ib7cc4) kaldırılacak API'lerin desteğini sonlandırma
- Açık Etkinlik referanslarını kabul etmek için
ExtensionInterface
güncellendi. (I07ded) - WindowMetrics API'yi tanıtır. (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ı (External Contribution)
- Verilere erişimi kolaylaştırmak için DeviceState ve WindowLayoutInfo'yu 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ü şu commit'leri içerir.
Bu, Pencere Yöneticisi kitaplığının ilk sürümüdür.
Yeni özellikler
DisplayFeature
: Bu yeni API, menteşeler veya katlamalar gibi sürekli düz ekran yüzeylerindeki kesintileri tanımlar.DeviceState
: Bu yeni API, tanımlanmış duruşlar listesinden (ör.CLOSED
,OPENED
,HALF_OPENED
vb.) telefonun mevcut duruşunu sağlar.