Pencere Yöneticisi
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
4 Eylül 2024 | 1.3.0 | - | - | 1.4.0-alfa02 |
Bağımlılıkları bildirme
WindowManager'a bağımlılık eklemek için Google Maven deposunu akılda kalıcı bir yolunu sunar. Okunanlar Daha fazlası için Google'ın Maven deposu ekleyebilirsiniz.
build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin.
uygulamanız veya modülünüz:
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'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.
Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.
Sürüm 1.4
Sürüm 1.4.0-alpha02
4 Eylül 2024
androidx.window:window-*:1.4.0-alpha02
yayınlandı. Sürüm 1.4.0-alpha02 bu kaydetmeleri içerir.
Yeni Özellikler
Özel WindowSizeClass
için destek ekleyin.
- Geliştiricilerin kendi uygulamalarını kullanabilmeleri için
WindowSizeClass
adlı uygulamanın oluşturucusunu açın. - Geliştiricilerin,
WindowSizeClass
değer aralığını işleyebilmesi içinisAtLeast
yardımcı program yöntemleri ekleyin. - Kümedeki en iyi eşleşmeyi hesaplamak için
Set<WindowSizeClass>
işlevine bir uzantı işlevi ekleyin. - Android tarafından önerilen ayrılma noktaları için sabit değerler ekleyin.
- Android'in önerdiği kesme noktalarına karşılık gelen ayrılma noktası grubunu ekleyin.
API Değişiklikleri
WindowSizeClass
için sınır yöntemi adlarını güncelleyin. (If89a6)- Gelecekte yeni ayrılma noktası değerleri eklemeyi desteklemek için
WindowSizeClass
API'yi güncelleyin. Mutlak sınırlar yerine alt sınırları kullanırız ve geliştiricilerinWindowSizeClass
öğesini işlerken 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ınlandı. Sürüm 1.4.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
- ActivityStack Pinning, uygulamaların bir kapsayıcıdaki içeriği sabitlemesine ve gezinmenin diğer kapsayıcıdan ayrılmasına olanak tanır.
- Etkileşimli Bölme, uygulamaların bölünmüş bir sunuda iki etkinlik arasında sabit veya sürüklenebilir bir ayırıcı olarak göstermesine olanak tanır.
- Tam Ekran İletişim Kutusu Karartma, uygulamaların iletişim kutusu karartma alanını belirtmesine olanak tanır. Bu şekilde uygulama, görev penceresinin tamamını karartabilir veya yalnızca iletişim kutusunu gösteren kapsayıcıyı karartabilir.
- Yerleştirilmiş Etkinlik Penceresi Bilgi Geri Çağırması, uygulamaların yerleşik etkinlik penceresiyle ilgili güncellemeleri sürekli olarak almasına olanak tanır.
- Animasyon Arka Planı Yerleştirilmiş, uygulamaların animasyon arka planını belirtmesine olanak tanıyarak
ActivityEmbedding
kullanıldığında geçiş animasyonu kalitesini artırır. - Geliştirilmiş ActivityStack Yönetimi,
ActivityEmbedding
kullanıldığında uygulamalarınActivityStacks
üzerinde daha fazla kontrol sahibi olmasına olanak tanır. Örneğin: - Belirli bir
ActivityStack
ile ilgili etkinlik başlatma ActivityStack
tamamlama
API Değişiklikleri
Yeni bir API
WindowInfoTracker#supportedPostures
:- Cihazın katlanabilir cihazlar için TableTop modunu destekleyip desteklemediğini belirleyen bir API. WindowAreaSessionServeer#getWindow ekler
ActivityStack
sabitlemesini 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 ekleyin
DividerAttributes
sınıfSplitAttributes.Builder#setDividerAttributes
İletişim kutuları için
EmbeddingConfiguration
veDimAreaBehavior
ayarlarını yapmak üzere API'ler ekleyinEmbeddingConfiguration
sınıfDimAreaBehavior
sınıfActivityEmbeddingController#setEmbeddingConfiguration
Yerleşik etkinlik aralığı bilgi güncellemelerini almak için API'ler ekleyin
EmbeddedActivityWindowInfo
sınıfActivityEmbeddingController#embeddedActivityWindowInfo
Yerleştirme animasyonu arka planını ayarlamak için API'ler ekleyin
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
ActivityStacks
işlemini tamamlamak için API'ler ekleyinActivityEmbeddingController#finishActivityStacks
ActivityStack
lansmanını ayarlamak için API'leri ekleyinActivityEmbeddingOptions#setLaunchingActivityStack
Aşağıdaki API'ler kararlı olup artık deneysel değildir:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(SplitController#inencryptedTopvisibleSplitAttributes konumundan taşındı)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
1.4 için API'leri ekleyin. (I56774)
Hata Düzeltmeleri
- Belirli cihazlarda, oturum etkin olduğunda ETKİN yerine UNAVAILABLE hatası döndürülmesini sağlayan hata düzeltildi.
- Kararsız API desteği nedeniyle,
vendorApiLevel
/2 değerine sahip cihazlardatransferActivityToWindowArea
desteğini kaldırır. - Etkinlik Yerleştirme sürüklenebilir ayırıcı için tam ekrana sürüklemeyi etkinleştirmek üzere API'yi tanıtın. (I645c9)
- Uygulamaların
SplitAttributes
için animasyon parametreleri aracılığıylaActivityEmbedding
animasyonlarını devre dışı bırakmasına izin ver. (Idc01a) - Bu durum, AGP 7.3 veya sonraki bir sürümle R8 kullanılırken (ör. R8 sürüm 3.3) ve AGP 8.1 veya sonraki sürümler kullanılırken tüm derlemeler (ör. D8 sürümü 8.1) için API modellemesi aracılığıyla otomatik olarak gerçekleştirildiğinden, yeni platform API'lerine erişimin manuel olarak özetlenmesi kaldırıldı. AGP kullanmayan müşterilerin D8 sürümüne 8.1 veya daha yeni bir sürüme geçmeleri önerilir. Daha fazla bilgi için bu makaleyi inceleyin. (Ia60e0, b/345472586)
- Cihazın animasyon geçişlerinde kullanabilmesi için uzantıların
SplitAttributes
için animasyon parametreleri almasına izin verin. (Iede00) - Yer paylaşımı API'lerini gizle (Ic4251)
- Bölme için sabit veya sürüklenebilir ayırıcıyı yapılandırmak için API'leri kullanın (Ia7a78)
- Yoğunluk özelliği
WindowMetrics
öğesine eklendi (Id6723) SupportedPostures
metriğini almak için API ekleyin. (If557a)setLaunchingActivityStack
adresini deneysel API'den (I191cf) kaldırınActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) ile tanışın#getToken
öğesini kullanımdan kaldırın ve#getActivityStackToken
(Ie0471) öğesini ekleyinembeddedActivityWindowInfo
akış API'si (Ida77f) için geri çağırma bağdaştırıcısını tanıtın- yer paylaşımlı akış API'si (I7264f) için geri çağırma adaptörü ekleme
- Test için
extensionsVersion
politikasını geçersiz kılmak içinWindowSdkExtensionsRule
özelliğini kullanın. (Ifb928) - -
ActivityOptionsCompat
kullanımlarıyla uyumlu olması için#setLaunchingActivityStack
paketini Paket'e taşıyın.- Kullanıcılar,
ActvityOptions
yerineactivityOptions.toBundle
öğesini geçmelidir. #setLaunchingActivityStack(Activity)
öğesini kaldır Kullanıcılar,ActivityStack
almak içinActivityEmbeddingController#getActivityStac(Activity)
öğesini kullanmalı veActivityStack
öğesini#setLaunchingActivityStack
hesabına aktarmalıdır. (Ie0ccc)
- Kullanıcılar,
- - WM Jetpack ve uzantılar arasında iletişim kurmak için tanımlayıcı olarak
ActivityStack.Token
veSpltInfo.Token
kullanın.- IBinder yerine Token'ı almak/döndürmek için API'leri kullanımdan kaldırın/değiştirin. (I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacks
ile tanışın- Bu özellik
#invalidateVisibleActivityStacks
(I02ef5) ile birleştirilmiş olduğundanSplitController#invalidateTopVisibleSplitAttributes
öğesini kaldırın
- Bu özellik
- - Yerleştirme yapılandırmasını ayarlamak için API ekleme. (I59a4a)
- - En iyi
ActivityStack
androidx.Window
API'si ekleme/sabitlemeyi kaldırma- Demo uygulama, en üstteki
ActivityStack
cihazı sabitlemesine/sabitlemesini kaldırmaya izin verecek şekilde güncelleniyor (I24dd3)
- Demo uygulama, en üstteki
#finishActivityStacks
veActivityEmbeddingOptions
öğelerini yeniden ekleyin (Ic1ab3)- Kararsız API'leri kaldırın. (Ibc534, b/302380585)
Sürüm 1.3
Sürüm 1.3.0
29 Mayıs 2024
androidx.window:window-*:1.3.0
yayınlandı. Sürüm 1.3.0 bu taahhütleri içerir.
1.2.0'dan bu yana önemli değişiklikler
- Pencere Boyutu Sınıfları için Kotlin Çoklu Platform desteği.
Sürüm 1.3.0-rc01
14 Mayıs 2024
WindowManager
Jetpack 1.3, WindowSizeClass
özellikleri için Kotlin Çoklu Platform desteği ve birden fazla hata düzeltmesi sunar.
androidx.window:window-*:1.3.0-rc01
yayınlandı. Sürüm 1.3.0-rc01 bu kayıtları içerir.
Sürüm 1.3.0-beta02
1 Mayıs 2024
androidx.window:window-*:1.3.0-beta02
yayınlandı. Sürüm 1.3.0-beta02 bu taahhütleri içerir.
API Değişiklikleri
- Özel
WindowSizeClass
oluşturma ve kullanma desteği kaldırıldı. (Id1143)
Hata Düzeltmeleri
- ProGuard'ın belirli cihaz uygulamalarında bazı dosyaları kaldırmasından kaynaklanan
KotlinReflectionInternalError
düzeltildi. (I01b02)
Sürüm 1.3.0-beta01
3 Nisan 2024
androidx.window:window-*:1.3.0-beta01
yayınlandı. Sürüm 1.3.0-beta01 bu taahhütleri içerir.
Sürüm 1.3.0-alpha03
6 Mart 2024
androidx.window:window-*:1.3.0-alpha03
yayınlandı. Sürüm 1.3.0-alpha03 bu kaydetmeleri içerir.
API Değişiklikleri
WindowSizeClassUtil
verilerini daha odaklanmış yöntemlere bölün. (Ie9292)- Geri yükle:
WindowSizeClass#compute
(I21355, b/324293374)
Hata Düzeltmeleri
- Sağlanan bağlamın doğru şekilde açılmadığı kilitlenme sorununu düzeltir. (94d10ce , b/318787482)
Sürüm 1.3.0-alpha02
7 Şubat 2024
androidx.window:window-*:1.3.0-alpha02
yayınlandı. 1.3.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Kendi boyut sınıflarını kullanmak isteyen geliştiriciler için esnekliği artırmak amacıyla Window Size Class API'lerin API yüzeyinde yapılan güncellemeler.
API Değişiklikleri
- Genişlik seçiciye yükseklik kısıtlamaları ekleyin. (I23393)
- Bir kümeden
WindowSizeClass
seçmek için yardımcı program fonksiyonları ekleyin. Geliştiricilerin kendi seçicilerini yazabilmeleri için deneysel puanlama işlevleri ekleyin. Belirli bir sınır içindeki en genişWindowSizeClass
değerini seçmek için bir seçici uzantı işlevi ekleyin. (I0c944) - Özel ayrılma noktalarının eklenebilmesi için
WindowSizeClass
oluşturucuyu açın. (Ic1ff3) - Genişlik, yükseklik ve yoğunluktan boyut sınıfı oluşturmak için kolaylık işlevi ekleyin. (If67f4)
Hata Düzeltmeleri
- Kayan noktalı değer 0'a kısaltıldığında oluşan istisnayı düzelt. (272ffac)
Sürüm 1.3.0-alpha01
15 Kasım 2023
androidx.window:window-*:1.3.0-alpha01
yayınlandı. 1.3.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturma için kullanılan test API'leri artık kararlı durumda.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı durumda. WindowLayoutInfoPublisherRule
, artıkUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, özellik verilerininUiContext
parametrelere katlandığını rapor ediyor.- Cihazda Uzantı Sürümü'nü gösterin.
- Kullanıcı başına uygulama başına geçersiz kılma işlemleri için
WindowProperties
sabit değer:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— Bilgileri bildirir. Uygulama, kullanıcıya yönelik en boy oranı uyumluluğunu devre dışı bıraktığı sistemde geçersiz kılmayı deneyin.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
- Bilgilendirme Uygulamanın, kullanıcının tam ekran seçeneğini devre dışı bıraktığı sistem en boy oranı uyumluluğunu geçersiz kılma ayarları
Sürüm 1.2
Sürüm 1.2.0
15 Kasım 2023
androidx.window:window-*:1.2.0
yayınlandı. 1.2.0 sürümü bu kaydetmeleri içerir.
1.1.0'dan bu yana önemli değişiklikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturma için kullanılan test API'leri artık kararlı durumda.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı durumda. WindowLayoutInfoPublisherRule
, artıkUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, özellik verilerininUiContext
parametrelere katlandığını rapor ediyor.- Cihazda Uzantı Sürümü'nü gösterin.
Sürüm 1.2.0-rc01
1 Kasım 2023
androidx.window:window-*:1.2.0-rc01
yayınlandı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturma için kullanılan test API'leri artık kararlı durumda.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı durumda. WindowLayoutInfoPublisherRule
, artıkUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, özellik verilerininUiContext
parametrelere katlandığını rapor ediyor.- Cihazda Uzantı Sürümü'nü gösterin.
Sürüm 1.2.0-beta04
18 Ekim 2023
androidx.window:window-*:1.2.0-beta04
yayınlandı. Sürüm 1.2.0-beta04 bu kaydetmeleri içerir.
API Değişiklikleri
- 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ınlandı. Sürüm 1.2.0-beta03 bu kaydetmeleri içerir.
Yeni Özellikler
- Düzgün çalışması için uzantıların belirli bir sürümüne ihtiyaç duyan API'lere yönelik
RequiresApi
kontrolleri ekleyin. - Cihazdaki uzantı sürümünü göstermek için bir API ekleyin.
API Değişiklikleri
- Herkese açık API'lerde gerekli pencere SDK'sı uzantısı sürümüne ek açıklama ekleyin.
- Etkinlik Yerleştirme bileşeninden
isXXXSupported
öğesini kaldırın. (Ie3dae)
- Etkinlik Yerleştirme bileşeninden
- Uzantı sürümünü cihazda bildirmek için
WindowSdkExtensions
özelliğini kullanın.- Gereken en düşük uzantı sürümüne açıklama eklemek için
RequiresWindowSdkExtension
özelliğini kullanın. (I05fd4)
- Gereken en düşük uzantı sürümüne açıklama eklemek için
WindowAreaInfo#getCapability
değerini null olamaz. (I17048)
Sürüm 1.2.0-beta01
26 Temmuz 2023
androidx.window:window-*:1.2.0-beta01
yayınlandı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturma için kullanılan test API'leri artık kararlı durumda.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı durumda. WindowLayoutInfoPublisherRule
, artıkUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, özellik verilerininUiContext
parametrelere katlandığını rapor ediyor.
API Değişiklikleri
- 1.3'teki (I857f5) kararlı bir sürümde API değişikliklerinin devam etmesini sağlamak için
WindowArea
API'yi deneysel olarak işaretler - API dosyaları, uyumluluk engellemesine açıklama ekleyecek şekilde güncellendi (I8e87a, b/287516207)
Sürüm 1.2.0-alpha03
21 Haziran 2023
androidx.window:window-*:1.2.0-alpha03
yayınlandı. 1.2.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Kullanımdan kaldırılan API'ler, API yüzeyinden kaldırılıyor.
- Eşzamanlı ekranları desteklemek için API'ler ekleyin.
- Zorunlu yeniden boyutlandırma geçersiz kılmasını devre dışı bırakmak için mülk ekleyin.
- Minimum en boy oranı geçersiz kılmasını devre dışı bırakmak için mülk ekleyin.
- Etkinlik Yerleştirme ile ilgili birim testlerini desteklemek için
ActivityEmbeddingRule
politikasını sabitleyin.
API Değişiklikleri
Hata Düzeltmeleri
- Yeniden boyutlandırmayı geçersiz kılmaya zorlamak için devre dışı bırakma uyumlu özelliği ekleme (Ie7ab1)
- Uzantılar arayüzünden
SESSION_STATE_CONTENT_INVISIBLE
öğesini kaldırır. (I6ed19) - Etkinlik yerleştirme işleminde birim testini desteklemek için
ActivityEmbeddingRule
öğesini sabitleyin. (I8d6b6) - Minimum en boy oranı geçersiz kılması için devre dışı bırakma uyumlu özelliği ekleniyor. (I66390)
- Kullanımdan kaldırılan WindowArea API'lerini (Ieb67c) kaldırır
- Yön isteği döngüsü özelliğini
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
olarak yeniden adlandırın. (Ie2fbd) - Pencere alanı oturumu sabit adlarını günceller (I83675)
- Algılandığında yön isteği döngüsünü yoksayan devre dışı bırakma uyumlu özelliği ekleme (I0a7a2)
- Özelliğin zaten etkin olduğunu belirtmek için
WindowAreaComponent#STATUS_ACTIVE
ekleyin. (I62bc3) RearDisplayPresentationMode
API'leri ekleme (I0401c)- Kararlılık için arka plan rengi API'sini kaldırın. (I34c3e)
- Pencere Alanı API'lerini gizle (I39de0)
SplitController
içindekiSplitInfo
parametresini geçersiz kılacak yöntemler ekleyin.SplitInfo
veActivityStack
için ikili değer oluşturmak üzere test yöntemleri ekleyin. (Icd69f)ActivityRule.Builder
için etiketi isteğe bağlı hale getirin. (Ib0b44)RatioSplitType
,ExpandContainersSplit
veHingeSplitType
kaldırılır. Şu andaSplitType
.#splitEqually()
,#expandContainers()
ve#splitByHinge
değerlerini sabitSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
veSPLIT_TYPE_HINGE
olarak değiştirin- Menteşe bölme türünün yedek türünü ayarlama işlevini kaldırın. Menteşe bölme türü, geçerli cihaz veya pencere durumu nedeniyle uygulanamazsa üst görev kapsayıcısını eşit şekilde bölmek için yedek olarak kullanılır. Yedek bölme türünü özelleştirmek için
SplitController#setSplitAttributesCalculator
kullanın. (Ifcc59)
add
/removeSplitCallback
öğesini kullanımdan kaldırınadd
/removeSplitCallback
dosyayıSplitControllerCallbackAdapter
klasörüne taşıyınSplitInfo
listesini edinmek içinFlow
desteği ekleyin (I7f1b6)
ActivityEmbeddingController
(I42e9b) için bir test kuralı ekleyinActivityOptionsCompat
,ActivityEmbeddingOptions
(I89301) olarak yeniden adlandırılıyor- Etkinlik yerleştirme özelliğinin kullanılıp kullanılamadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) DEFAULT
değerini daha iyi temsil etmek içinSplitAttributes.BackgroundColor
özelliğini kullanın. Opak olmayan animasyon arka plan renginin desteklenmediğini ve bu nedenle opak olmayan renklerin varsayılan olarak değerlendirileceğini, yani geçerli tema pencere arka plan renginin kullanılacağını açıklayın. (Ic6b95)alwaysAllow()
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
(Id4a6e) bilgilerini doğrulayabilmesi için sahteSplitAttributesCalculatorParams
oluşturmanın bir yolunu ekleyin 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ınlandı. 1.2.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Test API'sini, belirtilmemiş katlama özellikleri için sabit bir değere sahip olacak şekilde güncelleyin.
WindowLayoutInfoPublishRule
ile geçersiz kılma, Bağlam tabanlı API de dahil olmak üzere tümwindowLayoutInfo
değerlerini geçersiz kılar.
API Değişiklikleri
- Belirtilmemiş orta katlama özelliği için sabit değer ekleyin. (I7530c)
Hata Düzeltmeleri
Context
tabanlıWindowLayoutInfo
temelli geçersiz kılmaları desteklemek içinWindowLayoutInfoPublishRule
uygulamasını güncelleyin. (I2037a)
Sürüm 1.2.0-alpha01
24 Mayıs 2023
androidx.window:window-*:1.2.0-alpha01
yayınlandı. Sürüm 1.2.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
Etkinlik Yerleştirme ve WindowLayoutInfoTracker
ile ilgili test API'lerini sabitleyin. ActivityEmbeddingRule
, kararlı düzeye yükseltildi.
WindowMetricsCalculatorRule
, kararlı düzeye yükseltildi.
Test için FoldingFeature
oluşturmayı sağlayan yardımcı işlevler kararlı sürüme yükseltildi.
API Değişiklikleri
- Etkinlik yerleştirme işleminde birim testini desteklemek için
ActivityEmbeddingRule
öğesini sabitleyin. (I8d6b6) WindowMetrisCalculatorTestRule
, JVM testleri için saplama metriklerine izin vererek stabildir. Doğru sonuçlar için emülatör kullanmanızı öneririz.- JVM testini desteklemek için
WindowLayoutInfo
test API'lerini sabitleyin. (Ie036e) - Katlama özelliğini test etmek için
IntRange
ekleyin. (I69f7d)
Sürüm 1.1
Sürüm 1.1.0
7 Haziran 2023
androidx.window:window-*:1.1.0
yayınlandı. 1.1.0 sürümü bu kaydetmeleri içerir.
1.0.0'dan bu yana önemli değişiklikler
Etkinlik Yerleştirme
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
, uygulama manifestindeki<application>
etiketinin boole özelliği olarak eklendi.- Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupported
kullanımdan kaldırıldı ve yerinesplitSupportStatus
ile değiştirildi. splitSupportStatus
özelliği için durum sabitleri sağlamak amacıyla iç içe yerleştirilmişSplitController.SplitSupportStatus
sınıfı eklendi.SplitController
, birkaç modülde yeniden düzenlendi:Activity
veyaActivityStack
ile ilgili API içinActivityEmbeddingController
modülü.isActivityEmbedded
,SplitController
konumundanActivityEmbeddingController
konumuna taşındı.EmbeddingRule
ilgili işlem içinRuleController
modülü:SplitController
API kaldırıldı:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API eklendi:addRule()
— Bir kural ekler veya aynı etikete sahip kuralı günceller.removeRule()
: Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.setRules()
— Bir kural koleksiyonu oluşturur.clearRules()
— Tüm kayıtlı kuralları kaldırır.parseRules()
— Kuralları XML kural tanımlarından ayrıştırır.
- Tüm modüller, aşağıdakiler dahil olmak üzere
#getInstance()
yöntemiyle bir bağlamın başlatılmasını gerektirir:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Ekran en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için
EmbeddingAspectRatio
sınıfı eklendi. - Bölme düzenini tanımlamak için
SplitAttributes
sınıfı eklendi. - Bölme düzenlerini özelleştirmek için
SplitController
ürününeSplitAttributes
hesap makinesi işlevi eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
SplitAttributesCalculator
API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek içinisSplitAttributesCalculatorSupported()
EmbeddingRule#tag
alanı eklendi.SplitRule
ürününde API güncellemeleri:- Eklendi:
defaultSplitAttributes
— Bir bölmenin varsayılan bölme düzenini tanımlar;splitRatio
velayoutDirection
öğelerinin yerini alır. splitRatio
vesplitLayoutDirection
XML özelliklerinindefaultSplitAttributes
diline çevirisi eklendi.- Piksel yerine yoğunluktan bağımsız pikseller (dp) kullanmak için minimum boyut tanımları değiştirildi.
- Varsayılan değer 600 dp olan
minHeightDp
eklendi. minWidth
, 600 dp varsayılan değerleminWidthDp
olarak değiştirildi.minSmallestWidth
, 600 dp varsayılan değerleminSmallestWidthDp
olarak değiştirildi.maxAspectRatioInHorizontal
, varsayılanALWAYS_ALLOW
değeriyle eklendi.- Varsayılan değer 1.4 ile
maxAspectRatioInPortrait
eklendi. - Bitiş davranışı sabitlerinin yerini alacak
FinishBehavior
iç içe yerleştirilmiş sınıf tanımlandı. - Özellik değişiklikleri, Oluşturucu iç içe yerleştirilmiş
SplitPairRule
veSplitPlaceholderRule
sınıfına uygulandı.
- Eklendi:
SplitInfo#getSplitRatio()
, bölünmeyle ilgili ek bilgiler sağlamak içinSplitInfo#getSplitAttributes()
ile değiştirildi.
Pencere Düzeni
WindowInfoTracker
öğesine etkinlik dışı deneysel kullanıcı arayüzü bağlam desteği eklendi.WindowMetricsCalculator
öğesine etkinlik olmayan deneysel kullanıcı arayüzü bağlamı eklendi.
Taşıma Adımları
- Bölümlerdeki etkinlikleri görüntülemek üzere etkinlik yerleştirmeyi etkinleştirmek için uygulamaların manifest
<application>
etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
özelliğini eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Böylece sistem, bölünme davranışlarını uygulama için önceden optimize edebilir. SplitInfo
oran- Mevcut bölmenin yığın halinde olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
. - Mevcut oranı kontrol edin:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
.
- Mevcut bölmenin yığın halinde olup olmadığını kontrol edin:
- SplitController taşıma işlemleri:
SplitController.getInstance(Context)
içinSplitController.getInstance()
değişiklik.RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
içinSplitController.initialize(Context, @ResId int)
değişiklik.ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
içinSplitController.getInstance().isActivityEmbedded(Activity)
değişiklik.RuleController.getInstance(Context).addRule(rule)
içinSplitController.getInstance().registerRule(rule)
değişiklik.RuleController.getInstance(Context).removeRule(rule)
içinSplitController.getInstance().unregisterRule(rule)
değişiklik.RuleController.getInstance(Context).clearRules()
içinSplitController.getInstance().clearRegisteredRules()
değişiklik.RuleController.getInstance(Context).getRules()
içinSplitController.getInstance().getSplitRules()
değişiklik.
SplitRule
mülk taşıma işlemi: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
değerini piksel cinsindendisplayMetrics#density
değerine bölün.
- Bitiş davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FinishBehavior.NEVER
içinFINISH_NEVER
değişiklik.FinishBehavior.ALWAYS
içinFINISH_ALWAYS
değişiklik.FinishBehavior.ADJACENT
içinFINISH_ADJACENT
değişiklik.
- Düzen yönü
SplitAttributes.LayoutDirection
öğesine taşınmalıdır:SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
içinltr
değişiklik.SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
içinrtl
değişiklik.SplitAttributes.LayoutDirection.LOCALE
içinlocale
değişiklik.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
hesabına taşınmalıdır.
SplitPairRule.Builder
taşıma işlemi:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
değişikliğikotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değişiyor:kotlin 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şıma işlemleri" bölümüne bakın.- Dikey cihazlarda bölmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
öğesini kullanın.
SplitPlaceholder.Builder
taşıma işlemi:- Yalnızca
filters
veplaceholderIntent
parametreleri vardır. Diğer mülkler belirleyicilere taşınır. Ayrıntılar için "SplitPairRule.Builder taşıma işlemleri" bölümüne bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
numaralandırma benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değişti:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Dikey cihazlarda bölmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
öğesini kullanın.
- Yalnızca
Sürüm 1.1.0-rc01
10 Mayıs 2023
androidx.window:window-*:1.1.0-rc01
yayınlandı. Sürüm 1.1.0-rc01 bu kaydetmeleri içerir.
Yeni Özellikler
ActivityEmbedding
sürümünü kararlı bir API olarak yayınlayın.- Çeşitli hata düzeltmeleri.
Sürüm 1.1.0-beta02
5 Nisan 2023
androidx.window:window-*:1.1.0-beta02
yayınlandı. Sürüm 1.1.0-beta02 bu kaydetmeleri içerir.
Yeni Özellikler
- Dahili düzeltmeler yapın ve yer açın.
Sürüm 1.1.0-beta01
22 Mart 2023
androidx.window:window-*:1.1.0-beta01
yayınlandı. Sürüm 1.1.0-beta01 bu kaydetmeleri içerir.
Etkinlik Yerleştirme
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
, uygulama manifestindeki<application>
etiketinin boole özelliği olarak eklendi.- Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupported
kullanımdan kaldırıldı ve yerinesplitSupportStatus
ile değiştirildi. splitSupportStatus
özelliği için durum sabitleri sağlamak amacıyla iç içe yerleştirilmişSplitController.SplitSupportStatus
sınıfı eklendi.SplitController
, birkaç modülde yeniden düzenlendi:Activity
veyaActivityStack
ile ilgili API içinActivityEmbeddingController
modülü.isActivityEmbedded
,SplitController
konumundanActivityEmbeddingController
konumuna taşındı.EmbeddingRule
ilgili işlem içinRuleController
modülü:SplitController
API kaldırıldı:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API eklendi:addRule()
— Bir kural ekler veya aynı etikete sahip kuralı günceller.removeRule()
: Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.setRules()
— Bir kural koleksiyonu oluşturur.clearRules()
— Tüm kayıtlı kuralları kaldırır.- `parseRules() — Kuralları XML kural tanımlarından ayrıştırır.
- Tüm modüller, aşağıdakiler dahil olmak üzere
#getInstance()
yöntemiyle bir bağlamın başlatılmasını gerektirir:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Ekran en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için
EmbeddingAspectRatio
sınıfı eklendi. - Bölme düzenini tanımlamak için
SplitAttributes
sınıfı eklendi. - Bölme düzenlerini özelleştirmek için
SplitController
ürününeSplitAttributes
hesap makinesi işlevi eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
- Cihazda SplitAttributesCalculator API'lerin desteklenip desteklenmediğini kontrol etmek için
isSplitAttributesCalculatorSupported()
EmbeddingRule#tag
alanı eklendi.SplitRule
ürününde API güncellemeleri:- Eklendi:
defaultSplitAttributes
— Bir bölmenin varsayılan bölme düzenini tanımlar;splitRatio
velayoutDirection
öğelerinin yerini alır. splitRatio
vesplitLayoutDirection
XML özelliklerinindefaultSplitAttributes
diline çevirisi eklendi.- Piksel yerine yoğunluktan bağımsız pikseller (dp) kullanmak için minimum boyut tanımları değiştirildi.
- Varsayılan değer 600 dp olan
minHeightDp
eklendi. minWidth
, 600 dp varsayılan değerleminWidthDp
olarak değiştirildi.minSmallestWidth
, 600 dp varsayılan değerleminSmallestWidthDp
olarak değiştirildi.maxAspectRatioInHorizontal
, varsayılanALWAYS_ALLOW
değeriyle eklendi.maxAspectRatioInPortrait
, varsayılan1.4
değeriyle eklendi.- Bitiş davranışı sabitlerinin yerini alacak
FinishBehavior
iç içe yerleştirilmiş sınıf tanımlandı. - Özellik değişiklikleri, iç içe yerleştirilmiş
Builder
SplitPairRule
veSplitPlaceholderRule
sınıfına uygulandı.
- Eklendi:
SplitInfo#getSplitRatio()
, bölünmeyle ilgili ek bilgiler sağlamak içinSplitInfo#getSplitAttributes()
ile değiştirildi.
Pencere Düzeni
WindowInfoTracker
ürününe etkinlik dışı kullanıcı arayüzü bağlam desteği eklendi.WindowMetricsCalculator
öğesine etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma Adımları
- Bölümlerdeki etkinlikleri görüntülemek üzere etkinlik yerleştirmeyi etkinleştirmek için uygulamaların manifest
<application>
etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
özelliğini eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Böylece sistem, bölünme davranışlarını uygulama için önceden optimize edebilir. SplitInfo
oran- Mevcut bölmenin yığın halinde olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
. - Mevcut oranı kontrol edin:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
.
- Mevcut bölmenin yığın halinde olup olmadığını kontrol edin:
SplitController
taşıma işlemi:SplitController.getInstance(Context)
içinSplitController.getInstance()
değişiklik.SplitController.initialize(Context, @ResId int)
değişikliğiRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
içinSplitController.getInstance().isActivityEmbedded(Activity)
değişiklik.RuleController.getInstance(Context).addRule(rule)
içinSplitController.getInstance().registerRule(rule)
değişiklik.RuleController.getInstance(Context).removeRule(rule)
içinSplitController.getInstance().unregisterRule(rule)
değişiklik.RuleController.getInstance(Context).clearRules()
içinSplitController.getInstance().clearRegisteredRules()
değişiklik.RuleController.getInstance(Context).getRules()
içinSplitController.getInstance().getSplitRules()
değişiklik.
SplitRule
mülk taşıma işlemi: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
değerini piksel cinsindendisplayMetrics#density
değerine bölün.
- Bitiş davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FinishBehavior.NEVER
içinFINISH_NEVER
değişiklik.FinishBehavior.ALWAYS
içinFINISH_ALWAYS
değişiklik.FinishBehavior.ADJACENT
içinFINISH_ADJACENT
değişiklik.
- Düzen yönü
SplitAttributes.LayoutDirection
öğesine taşınmalıdır:SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
içinltr
değişiklik.SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
içinrtl
değişiklik.SplitAttributes.LayoutDirection.LOCALE
içinlocale
değişiklik.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
hesabına taşınmalıdır.
SplitPairRule.Builder
taşıma işlemi:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
değişikliğikotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değişiyor:kotlin 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şıma işlemleri" bölümüne bakın.- Dikey cihazlarda bölmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
öğesini kullanın.
SplitPlaceholder.Builder
taşıma işlemi:- Yalnızca
filters
veplaceholderIntent
parametreleri vardır. Diğer mülkler belirleyicilere taşınır. Ayrıntılar için "SplitPairRule.Builder taşıma işlemleri" bölümüne bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
numaralandırma benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.setLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
şu şekilde değişti:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Dikey cihazlarda bölmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
öğesini kullanın.
- Yalnızca
Sürüm 1.1.0-alpha06
22 Şubat 2023
androidx.window:window-*:1.1.0-alpha06
yayınlandı. 1.1.0-alpha06 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
WindowLayoutInfo
öğesini kullanıcı arayüzü bağlamından almanın deneysel sürümünü kullanıma sunun.
API Değişiklikleri
- Etkinlik yerleştirme özelliğinin kullanılıp kullanılamadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) - UI Context
WindowLayoutInfo
API'sini deneysel olarak ayarla. (I58ee0) - Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için
RearDisplay
modunu etkinleştirmek üzereWindowAreaController
ve API'leri sunar. (Iffcbf) - Varsayılan arka plan rengini güncelleyin. (I1ac1b)
SplitAttributes
parametre ekle. (I18bdd)SplitRule
,SplitAttributes
,SplitAttributesCalculator
için API'ler ekleyin. (I92d23)maxAspectRatio
etrafındaki API'leri iyileştirin:alwaysAllow()
vealwaysDisallow()
değerleriniALWAYS_ALLOW
veALWAYS_DISALLOW
ile değiştirin.- @see API'sini bağımsız dokümanlarla güncelleyin. (I3057b)
- Aşağıdaki oluşturucular, uygulamalar tarafından çağrılmamaları gerektiğinden herkese açık API'lerden kaldırıldı.
SplitInfo
oluşturucuActivityStack
oluşturucu (Ide534)
SplitRule
şu andamaxAspectRatioInPortrait/Landscape
alıyor. Yalnızca üst sınırların en boy oranı istenenmaxAspectRatio
değerine eşit olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)RuleController#parseRules
değerini statik (I785df) olacak şekilde değiştirin- ActivityEmbedding ile ilgili API'leri iyileştirin
- API adlandırmasını uyumlu hale getirin: Birden çok örnek için ekleme/kaldırma özelliğini kullanın:
addRule
içinregisterRule
değişiklikremoveRule
içinunregisterRule
değişiklikActivityRule
bölme kuralı olmadığındangetSplitRules
değerinigetRules
ile değiştirin- Bir dizi kural belirlemek için
RuleController#setRules
ekleyin SplitController
öğesinden,RuleController
kimlikli tekil API'ye kuralla ilgili API'leri ayıklayın. :addRule
removeRule
getRules
setRules
clearRules
parseRules
SplitController
yolundanActivityEmbeddingController
teklisine#isActivityEmbedded
ayıklayın. :isActivityEmbedded
SplitController#initialize
öğesini kaldır 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ı çalışma zamanı kurallarıyla ayırt etmeyiz. Bununla birlikte, statik XML kural tanımlarıyla veya çalışma zamanında kayıtlı olmalarına bakılmaksızın tüm kuralları temizlemek için
#clearRules
sonuçlarının çağrılması. EskiSplitController#clearRegisteredRules
davranışını kullanmak için lütfen XML kaynak kimliği ileRuleController#parseRules
yöntemini çağırın ve kuralları yeniden ayarlamak içinRuleController#setRules
yöntemini çağırın. Bu değişiklikten önce:SplitController.getInstance(context).clearRegisteredRules()
. Bu değişiklikten sonra:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- SplitRule API'lerini iyileştirin:
SplitRule
için pikseller yerine DP'deki minimum boyutları alın.SplitRule
Builder'ın minimum boyutları isteğe bağlı olarak alması için yeniden düzenleyin. (I95f17)
SplitController
öğesini başlatmak için bir bağlam iletme (I42549)SplitRule#layoutDir
adlı dosya#layoutDirection
veSplitRule Builder#setLayoutDir
adlı dosyaBuilder#setLayoutDirection
olarak yeniden adlandırıldı. (I3f6d1)
Sürüm 1.1.0-alpha04
9 Kasım 2022
androidx.window:window-*:1.1.0-alpha04
yayınlandı. 1.1.0-alpha04 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
ActivityEmbedding
içinActivityStack
öğesinin boş olup olmadığını belirlemek üzere bir yöntem sunun.- Deneysel API etiketleri
ActivityEmbedding
API'lerden kaldırıldı. - Oluşturmanın tercih edilen yolu
Builder
olduğundanActivityRule
oluşturucuyu gizleyin. WindowMetrics
üzerindeWindowInsets
öğesini almak için deneysel bir yöntem ekleyin.- Yer tutucunun tamamlanmasını önlemek için
SplitPlaceholderFinishBehavior
uygulamasını güncelleyin. Yer tutucunun tamamlanması bazı kafa karıştırıcı davranışlara neden oldu.
API Değişiklikleri
- Eğlenceli
isEmpty
öğesinin yerini almak içinisEmpty
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 (I41f22) ayırt etmesine izin vermek için
ActivityFilter#componentName
abdActivityFilter#intentAction
ekleyin - Deneysel API'den (I216b3)
@Deprecated
API'lerini kaldırın - Etkinlik Yerleştirme API'leri için
@ExperimentalWindowApi
öğesini kaldırın (I69ebe) ActivityRule
oluşturucuyu gizle, bunun yerine Oluşturucu'yu kullanın. (If4eb6)- Bir etkinliğin
ActivityFilter
kapsamında olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf) - API dosyalarını
WindowMetrics
veWindowMetricsCalculatorCompat
sınıflarındaki (I667fe) değişiklikleri yansıtacak şekilde güncelleme ActivityEmbedding
Mülkü Javadoc'unu ve sınıf adını güncelleyin (Ia1386)- AndroidManifest.xml dosyasında (Id1ad4) kullanılacak
ActivityEmbedding
özellik etiketi adları ekleniyor - Yeni
SplitPlaceholderFinishBehavior
veSplitPlaceholderRule.finishPrimaryWithPlaceholder
API'si eklenen bu API, yer tutucu etkinliklerinin ne zaman sona ereceğini ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcutSplitPlaceholderRule.finishPrimaryWithSecondary
'nin yerini alır. (I64647)
Hata Düzeltmeleri
- Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için
RearDisplay
modunu etkinleştirmek üzereWindowAreaController
ve API'leri sunar. (I388ab)
Sürüm 1.1.0-alpha03
27 Temmuz 2022
androidx.window:window-*:1.1.0-alpha03
yayınlandı. 1.1.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Yerleştirme kuralları için varsayılan değerleri güncelleyin.
API Değişiklikleri
- Yerleştirme kuralı özellikleri için varsayılan değerleri güncelleyin. (Ic4d35)
Sürüm 1.1.0-alpha02
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha02
yayınlandı. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için bağdaştırıcı kitaplıklarını yayınlayın.
Sürüm 1.1.0-alpha01
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için bağdaştırıcıları yayınlayın
Sürüm 1.1.0-alpha01
20 Nisan 2022
androidx.window:window:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
- Bir uygulamayı arka plana almanın, katlama özelliklerini göstermeyi durdurmasına neden olan hata düzeltildi.
- Deneysel ActivityEmbedding API'yi genişletin.
API Değişiklikleri
- Bir etkinliğin yerleştirilip yerleştirilmediğini kontrol etmek için kullanılan, herkese açık bir API'dir. (I39eb7)
Hata Düzeltmeleri
- Etkinlik bölümlerindeki (I1a1e4) kapsayıcılar için bitirme davranışını özelleştiren API'ler ekleyin
- Etkinlik bölme kuralları için yeni bir yapılandırma seçeneği eklendi. (Iec6af)
Sürüm 1.0
Sürüm 1.0.0
26 Ocak 2022
androidx.window:window-*:1.0.0
yayınlandı. 1.0.0 sürümü bu kaydetmeleri içerir.
1.0.0'ın temel özellikleri
WindowInfoTracker
veFoldingFeature
cihazlarda katlanabilir telefonlar için destek. Mevcut WindowMetrics'in hesaplanmasına yardımcı olmak içinWindowMetricsCalculator
.
Sürüm 1.0.0-rc01
15 Aralık 2021
androidx.window:window-*:1.0.0-rc01
yayınlandı. Sürüm 1.0.0-rc01 bu kaydetmeleri içerir.
Yeni Özellikler
- Telefonları
WindowInfoTracker
aracılığıyla katlama desteği ekleyin. - Mevcut ve maksimum
WindowMetrics
değerini hesaplamak için yöntemler ekleyin. - Destekleyici test API'leri ekleyin.
Sürüm 1.0.0-beta04
17 Kasım 2021
androidx.window:window-*:1.0.0-beta04
yayınlandı. Sürüm 1.0.0-beta04 bu kaydetmeleri içerir.
Yeni Özellikler
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- Etkinliği WindowInfoTracker için açık bir yöntem bağımlılığı haline getirin.
- Robolectric'i kullanan geliştiricileri desteklemek için basit bir WindowMetricsCalculator için bir TestRule ekleyin.
API Değişiklikleri
- Uzantıları ayıklama (I25a5f)
- ActivityStack'e isBlankis (I5a4e6) ekleyin
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- Java/rxjava/test bağımlılıklarını eşleşecek şekilde güncelleyin. (I0da63)
- Basit bir WindowMetricsCalculator için bir test kuralı ekleyin. (Ibacdb)
Sürüm 1.0.0-beta03
27 Ekim 2021
androidx.window:window-*:1.0.0-beta03
yayınlandı. Sürüm 1.0.0-beta03 bu kaydetmeleri içerir.
Yeni Özellikler
- Deneysel Etkinlik Yerleştirme API'leri ekleyin. Bu ilk düzen sürümü, iki Etkinliğin yan yana gösterilmesine olanak tanır.
API Değişiklikleri
- currentWindowMetrics API'yi doğru bir şekilde sağlayamadığımız için kaldırıldı. Lütfen bunun yerine WindowMetricsCalculator'ı (Icda5f) kullanın.
- Uzantılar API'si güncellendi. (Ica92b)
- Yeni bir özellik için arayüz eklendi: etkinlikleri yerleştirme ve bunları üst öğe içinde yan yana gösterme görev penceresi. (I5711d)
- WindowMetrics ve WindowLayoutInfo oluşturucuları gizlendi. Bunun yerine lütfen test API'lerini kullanın. (I5a1b5)
- Sahte WindowLayoutInfo nesneleri oluşturmak için API ekleyin. (I4a2fd)
Hata Düzeltmeleri
- 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ınlandı. Sürüm 1.0.0-beta02 bu kaydetmeleri içerir.
Yeni Özellikler
- Deneysel API'lere açıklama eklemek için deneysel bir ek açıklama ekleyin. (I9f1b6)
- Dikdörtgeni kabul eden bir FoldingFeature testi oluşturmak için test yöntemi ekleyin. Bu sayede, gerçek bir Etkinlik yerine Robolectric'i kullanırken daha kolay test yapabilirsiniz. (Id1cca)
Sürüm 1.0.0-beta01
18 Ağustos 2021
androidx.window:window-*:1.0.0-beta01
yayınlandı. Sürüm 1.0.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
- Eski sabit değerler kaldırıldı ve
FoldingFeature
, arayüz haline getirildi.
API Değişiklikleri
- Eski sabit değerleri kaldırın ve FoldFeature'ı bir arayüz haline getirin. (I9a2d5)
Hata Düzeltmeleri
Test Core
kitaplığına bağlı kitaplıklar1.4.0
sürümüne yükseltildi ve artık Android platformuyla çalışacak sürüm S (I88b72, b/189353863)
Sürüm 1.0.0-alpha10
4 Ağustos 2021
androidx.window:window-*:1.0.0-alpha10
yayınlandı. 1.0.0-alpha10 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- WindowInfoRepo'yu WindowInfoRepository olarak yeniden adlandırın ve ilgili sınıfları / dosyaları ayarlayın.
- Değer zaman içinde değiştiğinden mevcut aralık metriklerini WindowInfoRepository'de bir Akışa dönüştürün.
- WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandır
- Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleyin
- Paketleri, destekledikleri özelliklere göre grup sınıflarına güncelleyebilirsiniz.
API Değişiklikleri
- ActivityExt öğesini ActivityExtensions olarak yeniden adlandır Depo'dan Kod Deposu'na geçiş yapın. (I61a16)
- Sınıflar için paketleri güncelleme (I23ae2)
- WindowInfoRepo'dan (I24663) WindowMetrics'i kaldırma
- WindowManager'ı kaldırın ve WindowInfoRepo'yu kullanın
- WindowBackend'i dahili hale getirin. (I06d9a)
- Pencere metriklerini Akışa dönüştürün.
- Java bağdaştırıcısının adını WindowInfoRepoCallbackAdapter olarak değiştirir
- Başka deneysel API'lerin kullanılmaması için callbackFlow'u kaldırın. (Ia4d15)
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin.
- occlusionMode yerine occlusionType olarak değiştirme (If4cff)
Hata Düzeltmeleri
- Temel kitaplığın kaldırıldığı sırada proGuard hatası düzeltildi.
- WindowLayoutInfo'nun ek abonelere teslim edilmediği hata düzeltildi.
- Yapılandırma değişikliklerinin katlanan özellik güncellemelerini tetiklememesi gereken hata düzeltildi.
Sürüm 1.0.0-alpha09
30 Haziran 2021
androidx.window:window-*:1.0.0-alpha09
yayınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.
Yeni Özellikler
- Tam sayı sabitlerinden sınırsız enum'lara geçiş.
- Katlama özelliklerini test etmek için bir test aracı ekleyin.
API Değişiklikleri
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
occlusionMode
olan değeriocclusionType
olarak değiştir.
Hata Düzeltmeleri
- Veri akışlarına birden fazla tüketici eklerken başlangıç değerini verin.
Sürüm 1.0.0-alpha08
16 Haziran 2021
androidx.window:window-*:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- WindowInfoRepository kullanırken test yapmayı kolaylaştırmak için bir test yapısı yayınlandı. DisplayFeatures ve WindowMetrics hakkında bilgi edinmek için WindowInfoRepository'i kullanın. (I57f66 ve Ida620)
Sürüm 1.0.0-alpha07
2 Haziran 2021
androidx.window:window-*:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Temel pencere kitaplığını Kotlin'e taşıyın. Eşzamansız verileri ileride sunmak için eş yordamlar ve askıya alma işlevleri kullanılacak.
- WindowInfoRepo'yu WindowMetrics'i ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak ekleyin.
- Geri çağırmaları kaydetmek ve kayıtlarını iptal etmek için Java uyumlu API'leri ortaya çıkaracak yeni
window-java
yapısı. - RxJava tarafından uyarlanmış API'leri ortaya çıkarmak için yeni
window-rxjava2
vewindow-rxjava3
yapıları.
API Değişiklikleri
- Bağımlılıkları eşit şekilde sağlamak için
WindowServices
ekleyin.- Pencere düzeni bilgilerini kullanmak için eş yordam tabanlı API ekleyin. (Iab70f)
- Temel pencere yöneticisi kitaplığını Kotlin'e taşıyın. (Icca34)
Hata Düzeltmeleri
- Özellik sınırlarını temsil edecek yeni veri sınıfı ekleyin. (I6dcd1)
Sürüm 1.0.0-alpha06
5 Mayıs 2021
androidx.window:window:1.0.0-alpha06
yayınlandı. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Kotlin'e geçiş sürecini başlattık ve bu süreci bir sonraki sürümde tamamlayacağız.
- DeviceState, herkese açık API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'ı kullanın.
- Şu anda hiçbir kullanım alanında desteklenmediği için
STATE_FLIPPED
özelliğini FoldingFeature durumlarından kaldırdık. - Kullanımdan kaldırılan diğer API'leri de kaldırdık.
API Değişiklikleri
- Bağımlılık olarak Kotlin ekleme.
- Temel kitaplığı Kotlin'e taşıyın. (Idd995)
DisplayFeature
oluşturucu kaldırıldı. (I61fa4)DeviceState
, herkese açık API'den kaldırıldı, bunun yerineFoldingFeature
uygulamasını kullanın. (Id6079)- Cihaz durumu geri çağırmasını uzantılardan kaldırın. (I5ea83)
STATE_FLIPPED
adlı cihazı katlama özelliğinden kaldırın. (I9c4e1)- Kullanımdan kaldırılan kayıt yöntemlerini kaldırın. (Ib381b)
Sürüm 1.0.0-alpha05
24 Mart 2021
androidx.window:window:1.0.0-alpha05
yayınlandı. 1.0.0-alpha05 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
Uygulamaların, özelliğin ayırma veya kapanıp kapatmadığını ve menteşenin yönünü belirleyebilmesi için FoldingFeature'a kolaylık yöntemleri ekledik. Ayrıca menteşe türünü gizleyerek
Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırıyoruz. Dolaylı bir yarış koşulu olduğundan eşzamanlı okuma yöntemleri hataya açıktır. WindowLayoutInfo ile ilgili güncellemeleri almak için dinleyicileri ve geri çağırmaları kaydedin.
API Değişiklikleri
- FoldingFeatures ile çalışmaya yönelik kolaylık yöntemleri ekleme (Ie733f)
- WindowManager'dan (I96fd4) eşzamanlı okuma yöntemlerini kaldırır
Sürüm 1.0.0-alpha04
10 Mart 2021
androidx.window:window:1.0.0-alpha04
yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- OEM uygulaması yoksa WindowLayoutInfo uygulamasının yayınlanmamasına neden olan hatayı düzeltir. Şimdi boş bir WIndowLayoutInfo yayınlıyoruz.
- Uygulama arka plandayken menteşe durumu değişirse durumun düzgün bir şekilde güncellenmemesine neden olan hata düzeltildi. Artık durum tutarlı olmalıdır.
- Çalışma zamanı bağımlılıklarından gelen uyarıları yoksaymak için proGuard dosyalarımızı güncelleyin.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş değer gönderin. (Ide935)
Sürüm 1.0.0-alpha03
18 Şubat 2021
androidx.window:window:1.0.0-alpha03
yayınlandı. 1.0.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer girin. Bu sayede kitaplığın daha fazla cihazda kullanılması kolaylaşır. API'ler eşzamansız olduğundan, uygulamaların yine de bazı savunma kodları yazmaları ve zaman aşımından sonra varsayılan bir değer yayınlamaları önerilir. OEM uygulamaları konusunda herhangi bir garanti veremeyiz ve başlangıç değeri gecikebilir.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş değer gönderin. (Ide935)
Sürüm 1.0.0-alpha02
27 Ocak 2021
androidx.window:window:1.0.0-alpha02
yayınlandı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
API'yi basitleştirmek ve hataları azaltmak için bazı API'leri kullanımdan kaldırdık. Önemli örneklerden bazıları, eşzamanlı okuma işlemlerinin WindowManager'dan kaldırılması ve DeviceState'in kullanımdan kaldırılmasıdır. Eşzamanlı okuma işlemleri yarışma koşullarına yol açabilir ve yanlış kullanıcı arayüzüne sahip olabilir.
DisplayFeature'ı, diğer özelliklerin bundan sonra uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz, artık ekran katlama veya menteşeyi temsil eden FoldingFeature. Bu değer, DeviceState'in yerini alan menteşenin durumunu da içerir.
WindowMetrics, geliştiricilerin bir pencereyle ilgili metrikleri (örneğin, ekrandaki konumu, boyutu ve sistem eklerini) sorgulamanın basit bir yolunu sağlamak amacıyla Android 11'de kullanıma sunuldu. Geliştiricilerin WindowMetrics'ten yararlanabilmesi ve eski Android sürümlerini desteklemeye devam edebilmesi için bu sürümde API'yi geriye dönük olarak aktardık. WindowMetrics değerleri,
WindowManager#getCurrentWindowMetrics()
ve WindowManager#getmaximumWindowMetrics() API'leri aracılığıyla edinilebilir.
API Değişiklikleri
- Bir sonraki alfa sürümünde (Ib7cc4) kaldırılacak API'leri kullanımdan kaldırın
- Uygunsuz Etkinlikleri kabul etmek için
ExtensionInterface
öğesini günceller referanslar. (I07d) - WindowMetrics API'yi kullanıma sunar. (I3ccee)
- Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırın (I69983)
- ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)
Hata Düzeltmeleri
- Görsel bağlamı kabul etmek için
ExtensionInterface
API'lerini güncelleyin. (I8e827)
Harici Katkı
- İşlemi kolaylaştırmak için DeviceState ve WindowLayoutInfo bilgilerini birleştirin verilere erişme. (Id34f4)
Sürüm 1.0.0-alpha01
27 Şubat 2020
androidx.window:window:1.0.0-alpha01
androidx.window:window-extensions:1.0.0-alpha01
emin olun. 1.0.0-alpha01 sürümü bu kaydetmeleri içerir.
Bu, Windows Manager kitaplığının ilk sürümüdür.
Yeni özellikler
DisplayFeature
: Bu yeni API, sürekli aralıktaki kesintileri tanımlar menteşe veya kıvrım gibi ekran yüzeyleriDeviceState
: Bu yeni API, telefonun mevcut duruşunu tanımlanan duruşların bir listesi (örneğin,CLOSED
,OPENED
,HALF_OPENED
, vb.)