Pencere Yöneticisi
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
29 Mayıs 2024 | 1.3.0 | - | - | - |
Bağımlılıkları bildirme
WindowManager'da bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanızın veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Modern
dependencies { implementation "androidx.window:window:1.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 daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.3
Sürüm 1.3.0
29 Mayıs 2024
androidx.window:window-*:1.3.0
yayınlandı. 1.3.0 sürümü bu kayıtları içerir.
1.2.0'dan sonraki ö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 çok sayıda hata düzeltmesi sunuyor.
androidx.window:window-*:1.3.0-rc01
yayınlandı. 1.3.0-rc01 sürümü 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ı. 1.3.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Özel
WindowSizeClass
oluşturma ve kullanma desteğini kaldırın. (Id1143)
Hata Düzeltmeleri
- ProGuard'ın belirli cihaz uygulamalarında bazı dosyaları çıkarmasının neden olduğu
KotlinReflectionInternalError
düzeltmeleri. (I01b02)
Sürüm 1.3.0-beta01
3 Nisan 2024
androidx.window:window-*:1.3.0-beta01
yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.
Sürüm 1.3.0-alpha03
6 Mart 2024
androidx.window:window-*:1.3.0-alpha03
yayınlandı. 1.3.0-alpha03 sürümü bu kayıtları içerir.
API Değişiklikleri
WindowSizeClassUtil
yöntemini daha odaklanmış yöntemlere bölün. (Ie9292)- Geri yükle:
WindowSizeClass#compute
(I21355, b/324293374)
Hata Düzeltmeleri
- Sağlanan bağlamın doğru bir şekilde açılmadığı kilitlenme sorununu düzeltir. (94d10ce , b/318787482)
Sürüm 1.3.0-alpha02
7 Şubat 2024
androidx.window:window-*:1.3.0-alpha02
yayınlandı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
- Kendi boyut sınıflarını kullanmak isteyen geliştiriciler için esnekliği artırmak amacıyla Window Size Class API'lerinin API yüzeyinde yapılan güncellemeler.
API Değişiklikleri
- Genişlik seçiciye yükseklik sınırlamaları ekleyin. (I23393)
- Bir kümeden
WindowSizeClass
seçmek için yardımcı program işlevleri ekleyin. Geliştiricilerin kendi seçicilerini yazabilmeleri için deneysel puanlama işlevleri ekleyin. Belirli bir sınır dahilinde en genişWindowSizeClass
değerini seçmek için bir seçici uzantı işlevi ekleyin. (I0c944) - Özel ayrılma noktalarının eklenebilmesi için
WindowSizeClass
oluşturucuyu açın. (Ic1ff3) - Genişlik, yükseklik ve yoğunluktan beden sınıfı oluşturmak için kolaylık işlevi ekleyin. (If67f4)
Hata Düzeltmeleri
- Kayan noktalı değer 0'a kısaltıldığında istisnayı düzeltin. (272ffac)
Sürüm 1.3.0-alpha01
15 Kasım 2023
androidx.window:window-*:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturmayla ilgili test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alınırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildirir.- Cihazdaki Uzantı Sürümü'nü kullanıma sunun.
- Uygulama başına geçersiz kılma işlemleri için
WindowProperties
sabit değeri:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
: Sisteme, uygulamanın kullanıcıya yönelik en boy oranı uyumluluğu geçersiz kılmasını devre dışı bıraktığını bildirir.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— Sisteme, uygulamanın kullanıcı en boy oranı uyumluluğu geçersiz kılma ayarları için tam ekran seçeneğini devre dışı bıraktığını bildirir
Sürüm 1.2
Sürüm 1.2.0
15 Kasım 2023
androidx.window:window-*:1.2.0
yayınlandı. 1.2.0 sürümü bu kayıtları içerir.
1.1.0'dan sonraki önemli değişiklikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturmayla ilgili test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alınırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildirir.- Cihazdaki Uzantı Sürümü'nü kullanıma sunun.
Sürüm 1.2.0-rc01
1 Kasım 2023
androidx.window:window-*:1.2.0-rc01
yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturmayla ilgili test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alınırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildirir.- Cihazdaki Uzantı Sürümü'nü kullanıma sunun.
Sürüm 1.2.0-beta04
18 Ekim 2023
androidx.window:window-*:1.2.0-beta04
yayınlandı. 1.2.0-beta04 sürümü bu kayıtları içerir.
API Değişiklikleri
- 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ı. 1.2.0-beta03 sürümü bu kayıtları içerir.
Yeni Özellikler
- Doğru şekilde çalışmak için uzantıların belirli bir sürümüne ihtiyaç duyan API'lere
RequiresApi
kontrolleri ekleyin. - Cihazdaki uzantıların sürümünü kullanıma sunmak için bir API ekleyin.
API Değişiklikleri
- Herkese açık API'lerde gerekli pencere SDK uzantısı sürümüne ek açıklama ekleyin.
- Etkinliğe Yerleştirme bileşenindeki
isXXXSupported
öğesini kaldırın. (Ie3dae)
- Etkinliğe Yerleştirme bileşenindeki
- Cihazdaki uzantı sürümünü bildirmek için
WindowSdkExtensions
uygulamasını tanıtın.- Gerekli minimum uzantı sürümüne ek açıklama eklemek için
RequiresWindowSdkExtension
uygulamasını kullanın. (I05fd4)
- Gerekli minimum uzantı sürümüne ek açıklama eklemek için
WindowAreaInfo#getCapability
öğesini null geçersiz hale getirir. (I17048)
Sürüm 1.2.0-beta01
26 Temmuz 2023
androidx.window:window-*:1.2.0-beta01
yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturmayla ilgili test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamak için kullanılan test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alınırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildirir.
API Değişiklikleri
- API değişikliklerinin 1.3 sürümünde kararlı bir sürümle devam etmesine izin vermek için
WindowArea
API'lerini deneysel olarak işaretler (I857f5) - API dosyaları uyumluluğu engellemeye ek açıklama ekleyecek şekilde güncellendi (I8e87a, b/287516207)
Sürüm 1.2.0-alpha03
21 Haziran 2023
androidx.window:window-*:1.2.0-alpha03
yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
- Kullanımdan kaldırılan API'ler API yüzeyinden kaldırılıyor.
- Eşzamanlı ekranları desteklemek için API'ler ekleyin.
- Zorunlu yeniden boyutlandırmayı geçersiz kılmayı devre dışı bırakmak için bir özellik ekleyin.
- Minimum en boy oranını geçersiz kılma özelliğini devre dışı bırakmak için özellik ekleyin.
- Etkinlik Yerleştirme ile ilgili birim testlerini desteklemek için
ActivityEmbeddingRule
öğesini sabitleyin.
API Değişiklikleri
Hata Düzeltmeleri
- Zorunlu yeniden boyutlandırmayı geçersiz kılma için devre dışı bırakma uyumlu özelliği ekleme (Ie7ab1)
SESSION_STATE_CONTENT_INVISIBLE
uzantısını uzantılar arayüzünden kaldırır. (I6ed19)- Etkinlik yerleştirme çerçevesinde birim testlerini desteklemek için
ActivityEmbeddingRule
öğesini sabitleyin. (I8d6b6) - Minimum en boy oranını geçersiz kılma seçeneği için devre dışı bırakma uyumlu özelliği ekleniyor. (I66390)
- Kullanımdan kaldırılan WindowArea API'lerini (Ieb67c) kaldırır
- Yön isteği döngüsü özelliğini
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
olarak yeniden adlandırın. (Ie2fbd) - Pencere alanı oturum sabit adlarını günceller (I83675)
- Algılandığında yön isteği döngüsünü yok sayan kapsam dışında kalma uyumlu özelliği ekleme (I0a7a2)
- Özelliğin zaten etkin olduğunu belirtmek için
WindowAreaComponent#STATUS_ACTIVE
ekleyin. (I62bc3) RearDisplayPresentationMode
API'leri ekleyin (I0401c)- Kararlı kullanım için arka plan rengi API'sini kaldırın. (I34c3e)
- Pencere Alanı API'lerini gizleyin. (I39de0)
SplitController
içindeSplitInfo
özelliğini geçersiz kılmak için yöntemler ekleyin.SplitInfo
veActivityStack
için çift oluşturmak üzere test yöntemleri ekleyin. (Icd69f)ActivityRule.Builder
için etiketi isteğe bağlı hale getirin. (Ib0b44)RatioSplitType
,ExpandContainersSplit
veHingeSplitType
öğelerini kaldırın. Şu andaSplitType
.#splitEqually()
,#expandContainers()
ve#splitByHinge
değerleriniSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
veSPLIT_TYPE_HINGE
sabit değerleriyle değiştirin- Eklem menteşesi bölme türünün yedek türünü ayarlama işlevini kaldırın. Geçerli cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamıyorsa üst görev kapsayıcısını eşit şekilde bölmek için yedekler kullanılır. Yedek bölme türünü özelleştirmek için
SplitController#setSplitAttributesCalculator
öğesini kullanın. (Ifcc59)
- Kullanımdan kaldır:
add
/removeSplitCallback
add
/removeSplitCallback
dosyasınıSplitControllerCallbackAdapter
hedefine taşıyınSplitInfo
listesini almak içinFlow
desteğini ekleyin (I7f1b6)
ActivityEmbeddingController
(I42e9b) için bir test kuralı ekleyinActivityOptionsCompat
,ActivityEmbeddingOptions
olarak yeniden adlandırılıyor (I89301)- Etkinlik yerleştirme özelliğinin kullanılabilir olup olmadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) DEFAULT
değerini daha iyi göstermek içinSplitAttributes.BackgroundColor
ifadesini ekleyin. Opak olmayan animasyon arka plan renginin desteklenmediğini, opak olmayan renklerin varsayılan olarak değerlendirileceğini, yani geçerli tema penceresi arka plan renginin kullanılacağını açıklayın. (Ic6b95)alwaysAllow()
vealwaysDisallow()
değerleriniALWAYS_ALLOW
veALWAYS_DISALLOW
ile değiştirin. (I3057b)SplitRule
,SplitAttributes
,SplitAttributesCalculator
için API'leri ekleyin. (I92d23)- Test amacıyla
ActivityStack
oluşturmak içinTestActivityStack
ekleyin- Test amacıyla
SplitInfo
oluşturmak içinTestSplitInfo
ekleyin. (I8e779)
- Test amacıyla
- Geliştiricilerin özelleştirilmiş
SplitAttributesCalculator
(Id4a6e) doğrulayabilmeleri için sahteSplitAttributesCalculatorParams
oluşturma yöntemi ekleyin WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
veWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f) ekleyin
Sürüm 1.2.0-alpha02
7 Haziran 2023
androidx.window:window-*:1.2.0-alpha02
yayınlandı. Sürüm 1.2.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
- Test API'sini, belirtilmemiş katlama özellikleri için sabit değer içerecek şekilde güncelleyin.
WindowLayoutInfoPublishRule
ile geçersiz kılındığında Bağlam tabanlı API dahil olmak üzere tümwindowLayoutInfo
değerleri geçersiz kılınır.
API Değişiklikleri
- Belirtilmemiş merkeze katlama özelliği için sabit değer ekleyin. (I7530c)
Hata Düzeltmeleri
Context
temelindeWindowLayoutInfo
geçersiz kılma işlemlerini 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 kayıtları içerir.
Yeni Özellikler
Test API'lerini Etkinlik Yerleştirme ve WindowLayoutInfoTracker
ile ilgili olarak stabilize edin. ActivityEmbeddingRule
hizmetinin düzeyi kararlı sürüme yükseltildi.
WindowMetricsCalculatorRule
hizmetinin düzeyi kararlı sürüme yükseltildi.
Test için FoldingFeature
oluşturan yardımcı işlevler kararlı sürümüne yükseltildi.
API Değişiklikleri
- Etkinlik yerleştirme çerçevesinde birim testlerini desteklemek için
ActivityEmbeddingRule
öğesini sabitleyin. (I8d6b6) WindowMetrisCalculatorTestRule
, JVM testleri için saplama metriklerine izin vermeye kararlıdır. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.- JVM testini desteklemek üzere
WindowLayoutInfo
için test API'lerini stabilize edin. (Ie036e) - Test katlama özelliği değerleri için
IntRange
ekleyin. (I69f7d)
Sürüm 1.1
Sürüm 1.1.0
7 Haziran 2023
androidx.window:window-*:1.1.0
yayınlandı. 1.1.0 sürümü bu kayıtları içerir.
1.0.0'dan sonraki önemli değişiklikler
Etkinlik Yerleştirme
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
, uygulama manifest dosyasına<application>
etiketinin boole özelliği olarak eklendi.- Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupported
kullanımdan kaldırıldı vesplitSupportStatus
ile değiştirildi. splitSupportStatus
özelliği için durum sabitleri sağlamak üzere iç içe yerleştirilmişSplitController.SplitSupportStatus
sınıfı eklendi.SplitController
, çeşitli modüller halinde yeniden düzenlendi:Activity
veyaActivityStack
ile ilgili API'ler içinActivityEmbeddingController
modülü.isActivityEmbedded
,SplitController
konumundanActivityEmbeddingController
konumuna taşındı.EmbeddingRule
ile ilgili işlem içinRuleController
modülü:- Kaldırılan
SplitController
API: clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API eklendi:addRule()
- Bir kural ekler veya aynı etikete sahip kuralı günceller.removeRule()
— Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.setRules()
— Bir kurallar koleksiyonu oluşturur.clearRules()
: Tüm kayıtlı kuralları kaldırır.parseRules()
: XML kural tanımlarından kuralları ayrıştırır.
- Tüm modüller, aşağıdakiler dahil olmak üzere
#getInstance()
yöntemiyle başlatılacak bir bağlam gerektirir:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Görüntülü reklam en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için
EmbeddingAspectRatio
sınıfı eklendi. - Bölünmüş düzeni tanımlamak için
SplitAttributes
sınıfı eklendi. - Bölünmüş düzenleri özelleştirmek için
SplitController
uygulamasınaSplitAttributes
hesap makinesi işlevi eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
SplitAttributesCalculator
API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek içinisSplitAttributesCalculatorSupported()
EmbeddingRule#tag
alanı eklendi.SplitRule
sürümündeki API güncellemeleri:defaultSplitAttributes
eklendi: Bir bölmenin varsayılan bölme düzenini tanımlar;splitRatio
velayoutDirection
öğelerinin yerini alır.splitRatio
vesplitLayoutDirection
XML özelliklerinin çevirisidefaultSplitAttributes
diline eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanılacak şekilde değiştirildi.
- 600 dp varsayılan değerine sahip
minHeightDp
eklendi. minWidth
, 600 dp varsayılan değerine sahipminWidthDp
olarak değiştirildi.minSmallestWidth
, 600 dp varsayılan değerine sahipminSmallestWidthDp
olarak değiştirildi.ALWAYS_ALLOW
varsayılan değerine sahipmaxAspectRatioInHorizontal
eklendi.- 1.4 varsayılan değerine sahip
maxAspectRatioInPortrait
eklendi. - Bitiş davranışı sabit değerlerini değiştirmek için iç içe yerleştirilmiş
FinishBehavior
sınıfı tanımlandı. - Özellik değişiklikleri, Derleyici için iç içe yerleştirilmiş
SplitPairRule
veSplitPlaceholderRule
sınıfına uygulandı.
SplitInfo#getSplitRatio()
ifadesi, bölmeyle ilgili ek bilgiler sağlamak içinSplitInfo#getSplitAttributes()
ile değiştirildi.
Pencere Düzeni
WindowInfoTracker
için deneysel etkinlik dışı kullanıcı arayüzü bağlam desteği eklendi.WindowMetricsCalculator
öğesine deneysel etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma Adımları
- Etkinlikleri bölmelerde gösterecek şekilde etkinlik yerleştirmeyi etkinleştirmek için uygulamaların
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
özelliğini manifest<application>
etiketine eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Bu, sistemin bir uygulamanın bölme davranışlarını önceden optimize etmesine olanak tanır. SplitInfo
oranı- Geçerli bölmenin yığın halinde olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Geçerli oranı kontrol edin:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Geçerli bölmenin yığın halinde olup olmadığını kontrol edin:
- SplitController taşıma işlemleri:
SplitController.getInstance()
,SplitController.getInstance(Context)
olarak değiştirildi.SplitController.initialize(Context, @ResId int)
,RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
olarak değiştirildi.SplitController.getInstance().isActivityEmbedded(Activity)
,ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
olarak değiştirildi.SplitController.getInstance().registerRule(rule)
,RuleController.getInstance(Context).addRule(rule)
olarak değiştirildi.SplitController.getInstance().unregisterRule(rule)
,RuleController.getInstance(Context).removeRule(rule)
olarak değiştirildi.SplitController.getInstance().clearRegisteredRules()
,RuleController.getInstance(Context).clearRules()
olarak değiştirildi.SplitController.getInstance().getSplitRules()
,RuleController.getInstance(Context).getRules()
olarak değiştirildi.
SplitRule
mülk taşıma işlemi:minWidth
veminSmallestWidth
artık piksel yerine dp birimleri kullanıyor. Uygulamalar şu çağrıyı kullanabilir:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
veyaminWith
ifadesini piksel cinsindendisplayMetrics#density
sayısına bölebilirsiniz.
- Bitiş davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER
,FinishBehavior.NEVER
olarak değiştirildi.FINISH_ALWAYS
,FinishBehavior.ALWAYS
olarak değiştirildi.FINISH_ADJACENT
,FinishBehavior.ADJACENT
olarak değiştirildi.
- Düzen yönü
SplitAttributes.LayoutDirection
konumuna taşınmalıdır:ltr
,SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
olarak değiştirildi.rtl
,SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
olarak değiştirildi.locale
,SplitAttributes.LayoutDirection.LOCALE
olarak değiştirildi.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
hedefine taşınmalıdır.
SplitPairRule.Builder
taşıma işlemi:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
içinSplitPairRule.Builder(filters, minWidth, minSmallestWidth)
değişiklikkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
içinsetLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
değişikliğisetFinishPrimaryWithSecondary
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 var. Diğer mülkler, belirleyicilere taşınır. Ayrıntılar için "SplitpairRule.Builder taşıma işlemleri" bölümüne bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.setLayoutDirection(layoutDirection)
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ı. 1.1.0-rc01 sürümü bu kayıtları içerir.
Yeni Özellikler
ActivityEmbedding
sürümünü kararlı bir API olarak yayınlayın.- Çeşitli hata düzeltmeleri.
Sürüm 1.1.0-beta02
5 Nisan 2023
androidx.window:window-*:1.1.0-beta02
yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.
Yeni Özellikler
- Dahili düzeltmeler ve temizleme.
Sürüm 1.1.0-beta01
22 Mart 2023
androidx.window:window-*:1.1.0-beta01
yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.
Etkinlik Yerleştirme
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
, uygulama manifest dosyasına<application>
etiketinin boole özelliği olarak eklendi.- Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupported
kullanımdan kaldırıldı vesplitSupportStatus
ile değiştirildi. splitSupportStatus
özelliği için durum sabitleri sağlamak üzere iç içe yerleştirilmişSplitController.SplitSupportStatus
sınıfı eklendi.SplitController
, çeşitli modüller halinde yeniden düzenlendi:Activity
veyaActivityStack
ile ilgili API'ler içinActivityEmbeddingController
modülü.isActivityEmbedded
,SplitController
konumundanActivityEmbeddingController
konumuna taşındı.EmbeddingRule
ile ilgili işlem içinRuleController
modülü:- Kaldırılan
SplitController
API:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API eklendi:addRule()
- Bir kural ekler veya aynı etikete sahip kuralı günceller.removeRule()
— Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.setRules()
— Bir kurallar koleksiyonu oluşturur.clearRules()
: Tüm kayıtlı kuralları kaldırır.- `parseRules() — Kuralları XML kural tanımlarından ayrıştırır.
- Tüm modüller, aşağıdakiler dahil olmak üzere
#getInstance()
yöntemiyle başlatılacak bir bağlam gerektirir:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Görüntülü reklam en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için
EmbeddingAspectRatio
sınıfı eklendi. - Bölünmüş düzeni tanımlamak için
SplitAttributes
sınıfı eklendi. - Bölünmüş düzenleri özelleştirmek için
SplitController
uygulamasınaSplitAttributes
hesap makinesi işlevi eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
- Cihazda SplitAttributesCalculator API'lerinin desteklenip desteklenmediğini kontrol etmek için
isSplitAttributesCalculatorSupported()
EmbeddingRule#tag
alanı eklendi.SplitRule
sürümündeki API güncellemeleri:defaultSplitAttributes
eklendi: Bir bölmenin varsayılan bölme düzenini tanımlar;splitRatio
velayoutDirection
öğelerinin yerini alır.splitRatio
vesplitLayoutDirection
XML özelliklerinin çevirisidefaultSplitAttributes
diline eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanılacak şekilde değiştirildi.
- 600 dp varsayılan değerine sahip
minHeightDp
eklendi. minWidth
, 600 dp varsayılan değerine sahipminWidthDp
olarak değiştirildi.minSmallestWidth
, 600 dp varsayılan değerine sahipminSmallestWidthDp
olarak değiştirildi.ALWAYS_ALLOW
varsayılan değerine sahipmaxAspectRatioInHorizontal
eklendi.1.4
varsayılan değerine sahipmaxAspectRatioInPortrait
eklendi.- Bitiş davranışı sabit değerlerini değiştirmek için iç içe yerleştirilmiş
FinishBehavior
sınıfı tanımlandı. - Özellik değişiklikleri, iç içe yerleştirilmiş
Builder
SplitPairRule
veSplitPlaceholderRule
sınıfına uygulandı.
SplitInfo#getSplitRatio()
ifadesi, bölmeyle ilgili ek bilgiler sağlamak içinSplitInfo#getSplitAttributes()
ile değiştirildi.
Pencere Düzeni
WindowInfoTracker
için etkinlik dışı kullanıcı arayüzü bağlam desteği eklendi.WindowMetricsCalculator
öğesine etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma Adımları
- Etkinlikleri bölmelerde gösterecek şekilde etkinlik yerleştirmeyi etkinleştirmek için uygulamaların
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
özelliğini manifest<application>
etiketine eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Bu, sistemin bir uygulamanın bölme davranışlarını önceden optimize etmesine olanak tanır. SplitInfo
oranı- Geçerli bölmenin yığın halinde olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- Geçerli oranı kontrol edin:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Geçerli bölmenin yığın halinde olup olmadığını kontrol edin:
SplitController
taşıma işlemi:SplitController.getInstance()
,SplitController.getInstance(Context)
olarak değiştirildi.RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
içinSplitController.initialize(Context, @ResId int)
değişikliği yapıldı.SplitController.getInstance().isActivityEmbedded(Activity)
,ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
olarak değiştirildi.SplitController.getInstance().registerRule(rule)
,RuleController.getInstance(Context).addRule(rule)
olarak değiştirildi.SplitController.getInstance().unregisterRule(rule)
,RuleController.getInstance(Context).removeRule(rule)
olarak değiştirildi.SplitController.getInstance().clearRegisteredRules()
,RuleController.getInstance(Context).clearRules()
olarak değiştirildi.SplitController.getInstance().getSplitRules()
,RuleController.getInstance(Context).getRules()
olarak değiştirildi.
SplitRule
mülk taşıma işlemi:minWidth
veminSmallestWidth
artık piksel yerine dp birimleri kullanıyor. Uygulamalar şu çağrıyı kullanabilir:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
veyaminWith
ifadesini piksel cinsindendisplayMetrics#density
sayısına bölebilirsiniz.
- Bitiş davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER
,FinishBehavior.NEVER
olarak değiştirildi.FINISH_ALWAYS
,FinishBehavior.ALWAYS
olarak değiştirildi.FINISH_ADJACENT
,FinishBehavior.ADJACENT
olarak değiştirildi.
- Düzen yönü
SplitAttributes.LayoutDirection
konumuna taşınmalıdır:ltr
,SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
olarak değiştirildi.rtl
,SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
olarak değiştirildi.locale
,SplitAttributes.LayoutDirection.LOCALE
olarak değiştirildi.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
hedefine taşınmalıdır.
SplitPairRule.Builder
taşıma işlemi:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
içinSplitPairRule.Builder(filters, minWidth, minSmallestWidth)
değişikliksetLayoutDirection(layoutDirection)
vesetSplitRatio(ratio)
,kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
olarak değiştisetFinishPrimaryWithSecondary
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 var. Diğer mülkler, belirleyicilere taşınır. Ayrıntılar için "SplitpairRule.Builder taşıma işlemleri" bölümüne bakın. setFinishPrimaryWithPlaceholder
,FinishBehavior
enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.setLayoutDirection(layoutDirection)
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 kayıtları içerir.
Yeni Özellikler
- Kullanıcı arayüzü bağlamından
WindowLayoutInfo
almanın deneysel sürümünü kullanıma sunun.
API Değişiklikleri
- Etkinlik yerleştirme özelliğinin kullanılabilir olup olmadığını belirtmek için
splitSupportStatus
ekleyin. (I10024) - UI Context
WindowLayoutInfo
API'sini deneysel olarak ayarla. (I58ee0) - Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için
RearDisplay
modunu etkinleştirmek üzereWindowAreaController
ve API'leri kullanıma sunar. (Iffcbf) - Varsayılan arka plan rengini güncelleyin. (I1ac1b)
SplitAttributes
parametreleri ekle. (I18bdd)SplitRule
,SplitAttributes
,SplitAttributesCalculator
için API'leri ekleyin. (I92d23)maxAspectRatio
ile ilgili API'leri iyileştirin:alwaysAllow()
vealwaysDisallow()
değerleriniALWAYS_ALLOW
veALWAYS_DISALLOW
ile değiştirin.- @see API dokümanlarını, bağımsız dokümanlarla güncelleyin. (I3057b)
- Aşağıdaki kurucular, uygulamalar tarafından çağrılmamaları gerektiğinden herkese açık API'lerden kaldırılmıştır.
SplitInfo
kurucusuActivityStack
oluşturucu (Ide534)
SplitRule
artıkmaxAspectRatioInPortrait/Landscape
alıyor. Yalnızca üst sınırların en boy oranı istenenmaxAspectRatio
değerine eşit veya daha küçük olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)RuleController#parseRules
değerini statik olarak değiştirin (I785df)- ActivityEmbedding ile ilgili API'leri iyileştirme
- API adlandırmasını hizalama: Birden çok örnek için ekle/kaldır seçeneğini kullanın:
addRule
içinregisterRule
değişiklikremoveRule
içinunregisterRule
değişiklikActivityRule
bir bölme kuralı olmadığındangetSplitRules
değerinigetRules
ile değiştirin- Birçok kural belirlemek için
RuleController#setRules
ekleyin - Kuralla ilgili API'leri
SplitController
öğesindenRuleController
tekil öğesine çıkarın. Bunlar: addRule
removeRule
getRules
setRules
clearRules
parseRules
SplitController
öğesinden#isActivityEmbedded
öğesiniActivityEmbeddingController
tekilliğine çıkarın. Bunlar:isActivityEmbedded
SplitController#initialize
öğesini kaldır XML dosyasından kural belirlemek için lütfenRuleController#parseRules
ve#setRules
öğelerini kullanın. Bu değişiklikten önce:SplitController.initialize(context, R.xml.static_rules)
Bu değişiklikten sonra:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- Artık çalışma zamanı kurallarıyla statik kuralları ayırt etmiyoruz. Bununla birlikte, statik XML kural tanımlarına veya çalışma zamanında kaydedilmiş olsalar bile tüm kuralları temizlemek için
#clearRules
sonuçları çağrılır.SplitController#clearRegisteredRules
öğesinin eski davranışını kullanmak için lütfen XML kaynakları kimliğiyleRuleController#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 DP'de piksel yerine minimum boyutları alın.- Minimum boyutları isteğe bağlı olarak almak üzere
SplitRule
Oluşturucu için yeniden düzenleyin. (I95f17)
SplitController
(I42549) uygulamasını başlatmak için bir Bağlam geçirinSplitRule#layoutDir
öğesinin adı#layoutDirection
,SplitRule Builder#setLayoutDir
adı iseBuilder#setLayoutDirection
olarak değiştirildi. (I3f6d1)
Sürüm 1.1.0-alpha04
9 Kasım 2022
androidx.window:window-*:1.1.0-alpha04
yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
ActivityEmbedding
için birActivityStack
öğesinin boş olup olmadığını belirlemek üzere bir yöntem gösterin.ActivityEmbedding
API'deki deneysel API etiketleri kaldırıldı.Builder
yapısı tercih edilen yapı olduğundanActivityRule
oluşturucusunu gizleyin.WindowMetrics
üzerindeWindowInsets
elde etmek için deneysel bir yöntem ekleyin.- Yer tutucunun tamamlanmasını önlemek için
SplitPlaceholderFinishBehavior
öğesini güncelleyin. Yer tutucunun tamamlanması bazı kafa karıştırıcı davranışlara neden oldu.
API Değişiklikleri
- Eğlenceli
isEmpty
öğesinin yerineisEmpty
öğesini herkese açık hale getirin. ActivityStack
parametre etkinlikleriniactivitiesInProcess
olarak yeniden adlandırın. (Ia5055)- Kafa karıştırıcı olduklarından
ActivityFilter#matchesClassName
veActivityFilter#matchesClassNameOrWildCard
öğelerini kaldırın. - Arayanın farklı filtreleri ayırt etmesini sağlamak için
ActivityFilter#componentName
abdActivityFilter#intentAction
ekleyin (I41f22) @Deprecated
API'lerini deneysel API'den (I216b3) kaldırın- Etkinlik Yerleştirme API'leri için
@ExperimentalWindowApi
politikasını kaldırın (I69ebe) ActivityRule
oluşturucuyu gizleyin, bunun yerine Oluşturucu'yu kullanın. (If4eb6)- Bir etkinliğin
ActivityFilter
kapsamında olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf) - API dosyalarını
WindowMetrics
veWindowMetricsCalculatorCompat
sınıflarındaki değişiklikleri yansıtacak şekilde güncelleme (I667fe) ActivityEmbedding
Mülkü Javadoc'unu ve sınıf adını (Ia1386) güncelleme- AndroidManifest.xml dosyasında kullanılacak
ActivityEmbedding
özellik etiketi adları ekleme (Id1ad4) - Yeni API
SplitPlaceholderFinishBehavior
veSplitPlaceholderRule.finishPrimaryWithPlaceholder
eklendi. Bu API, yer tutucu etkinliklerin ne zaman sona erdiğini ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcutSplitPlaceholderRule.finishPrimaryWithSecondary
API'sinin yerini alır. (I64647)
Hata Düzeltmeleri
- Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için
RearDisplay
modunu etkinleştirmek üzereWindowAreaController
ve API'leri kullanıma sunar. (I388ab)
Sürüm 1.1.0-alpha03
27 Temmuz 2022
androidx.window:window-*:1.1.0-alpha03
yayınlandı. Sürüm 1.1.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
- Yerleştirme kuralları için varsayılan değerleri güncelleyin.
API Değişiklikleri
- Yerleştirme kuralı özelliklerinin varsayılan değerlerini güncelleyin. (Ic4d35)
Sürüm 1.1.0-alpha02
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha02
yayınlandı. Sürüm 1.1.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için adaptör kitaplıklarını serbest bırakın.
Sürüm 1.1.0-alpha01
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için bağdaştırıcıları serbest bırakın
Sürüm 1.1.0-alpha01
20 Nisan 2022
androidx.window:window:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
- Bir uygulamanın arka plana alındığında katlama özellikleri yayınlamayı durdurmasına neden olan hata düzeltildi.
- Deneysel ActivityEmbedding API'yi daha yakından tanıyın.
API Değişiklikleri
- Bir etkinliğin yerleştirilip yerleştirilmediğini kontrol etmek için kullanılan herkese açık bir API. (I39eb7)
Hata Düzeltmeleri
- Etkinlik bölümlerinde kapsayıcılar için son işlem davranışını özelleştiren API'ler ekleme (I1a1e4)
- Etkinlik bölme kuralları için yeni bir yapılandırma seçeneği eklendi. (Iec6af)
Sürüm 1.0
Sürüm 1.0.0
26 Ocak 2022
androidx.window:window-*:1.0.0
yayınlandı. 1.0.0 sürümü bu kayıtları içerir.
1.0.0'ın temel özellikleri
WindowInfoTracker
veFoldingFeature
üzerinden katlanabilir telefonlar için destek.WindowMetricsCalculator
.
Sürüm 1.0.0-rc01
15 Aralık 2021
androidx.window:window-*:1.0.0-rc01
yayınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.
Yeni Özellikler
WindowInfoTracker
üzerinden katlanan telefonlar için destek eklendi.- Mevcut ve maksimum
WindowMetrics
değerini hesaplamak için yöntemler ekleyin. - Destekleyici test API'leri ekleyin.
Sürüm 1.0.0-beta04
17 Kasım 2021
androidx.window:window-*:1.0.0-beta04
yayınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.
Yeni Özellikler
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- Etkinliği WindowInfoTracker için açık bir yöntem bağımlılığı haline getirin.
- Robolectric'i kullanan geliştiricileri desteklemek üzere WindowMetricsCalculator için basit bir TestRule ekleyin.
API Değişiklikleri
- Uzantıları çıkarın (I25a5f)
- ActivityStack'e isBlank ekleyin (I5a4e6)
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- java/rxjava/testing bağımlılıklarını eşleşecek şekilde güncelleyin. (I0da63)
- Basit bir WindowMetricsCalculator için bir test kuralı ekleyin. (Ibacdb)
Sürüm 1.0.0-beta03
27 Ekim 2021
androidx.window:window-*:1.0.0-beta03
yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.
Yeni Özellikler
- Deneysel Activity Embedding API'leri ekleme. Bu ilk düzen sürümü, iki Etkinliğin yan yana gösterilmesine olanak tanır.
API Değişiklikleri
- Doğru bir şekilde sağlayamadığımız için currentWindowMetrics API'si kaldırıldı. Lütfen bunun yerine WindowMetricsCalculator (Icda5f) kullanın
- Uzantılar API'si güncellendi. (Ica92b)
- Etkinlikleri yerleştirmeye ve bunları ana görev penceresi içinde yan yana göstermeye olanak tanıyan yeni bir özellik için arayüz eklendi. (I5711d)
- WindowMetrics ve WindowLayoutInfo kurucuları gizlendi, lütfen bunun yerine test API'larını kullanın. (I5a1b5)
- Sahte WindowLayoutInfo nesneleri oluşturmak için bir API ekleyin. (I4a2fd)
Hata Düzeltmeleri
- 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ı. 1.0.0-beta02 sürümü bu kayıtları içerir.
Yeni Özellikler
- Deneysel API'lere ek açıklama eklemek için deneysel ek açıklama ekleyin. (I9f1b6)
- Dikdörtgeni kabul eden bir test FoldingFeature oluşturmak için bir test yöntemi ekleyin. Bu, gerçek bir Etkinlik yerine Robolectric'i kullanırken test yapmayı kolaylaştıracaktır. (Id1cca)
Sürüm 1.0.0-beta01
18 Ağustos 2021
androidx.window:window-*:1.0.0-beta01
yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Eski sabit değerler kaldırılıp
FoldingFeature
arayüzü haline getirildi.
API Değişiklikleri
- Eski sabitleri kaldırıp FoldFeature'ı bir arayüz haline getirin. (I9a2d5)
Hata Düzeltmeleri
Test Core
kitaplığını temel alan kitaplıklar1.4.0
sürümüne yükseltildi ve artık Android platformu S sürümüyle çalışacak. (I88b72, b/189353863)
Sürüm 1.0.0-alfa10
4 Ağustos 2021
androidx.window:window-*:1.0.0-alpha10
yayınlandı. Sürüm 1.0.0-alpha10 bu kayıtları içerir.
Yeni Özellikler
- WindowInfoRepo'yu WindowInfoRepository olarak yeniden adlandırın ve ilgili sınıfları / dosyaları ayarlayın.
- Değer zaman içinde değiştiği için mevcut aralık metriklerini WindowInfoRepository'de bir Akışa dönüştürün.
- WindowInfoRepoJavaAdapter adını WindowInfoRepoCallbackAdapter olarak değiştirin
- Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleyin
- Paketleri, destekledikleri özelliğe göre grup sınıflarına güncelleyin.
API Değişiklikleri
- ActivityExt'in adını ActivityExtensions olarak değiştirin. Depo yerine Repository olarak değiştirin. (I61a16)
- Sınıflar için paketleri güncelleme. (I23ae2)
- WindowInfoRepo'dan (I24663) WindowMetrics'i kaldırma
- WindowManager'ı kaldırın ve WindowInfoRepo'yu kullanın
- WindowBackend'i dahili hale getirin. (I06d9a)
- Pencere metriklerini Akışa dönüştürün.
- Java bağdaştırıcısını WindowInfoRepoCallbackAdapter olarak yeniden adlandırın
- Deneysel API'lerin kullanılmaması için callbackFlow'u kaldırın. (Ia4d15)
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin.
- occlusionMode'dan occlusionType'a (If4cff) geçin
Hata Düzeltmeleri
- Temel kitaplığın kaldırıldığı ProGuard hatası düzeltildi.
- WindowLayoutInfo'nun ek abonelere sunulmadığı hatayı düzeltin.
- Yapılandırma değişikliklerinin, katlanan özellik güncellemelerini tetiklememesine yol açan hata düzeltildi.
Sürüm 1.0.0-alpha09
30 Haziran 2021
androidx.window:window-*:1.0.0-alpha09
yayınlandı. Sürüm 1.0.0-alpha09 bu kayıtları içerir.
Yeni Özellikler
- Tam sayı sabit değerlerinden sınırsız enum sayısına geçiş.
- Katlama özelliklerini test etmek için bir test aracı ekleyin.
API Değişiklikleri
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
occlusionMode
olan fiyatıocclusionType
olarak değiştirin.
Hata Düzeltmeleri
- Veri akışlarının birden fazla tüketicisini eklerken ilk değeri paylaşın.
Sürüm 1.0.0-alpha08
16 Haziran 2021
androidx.window:window-*:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.
Yeni Özellikler
- WindowInfoRepository kullanırken test yapmayı kolaylaştırmak için bir test yapısı yayınlandı. DisplayFeatures ve WindowMetrics hakkında bilgi edinmek için WindowInfoRepository kullanın. (I57f66, Ida620)
Sürüm 1.0.0-alpha07
2 Haziran 2021
androidx.window:window-*:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.
Yeni Özellikler
- Temel pencere kitaplığını Kotlin'e taşıyın. İleride eşzamansız verileri açığa çıkarmak için eş yordamlar ve askıya alma işlevleri kullanılır.
- WindowInfoRepo'yu WindowMetrics'i ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak ekleyin.
- Geri çağırmaları kaydetmek ve kaydı iptal etmek için Java dostu API'leri açığa çıkaracak yeni
window-java
yapısı. - RxJava'ya göre uyarlanmış API'leri gösterecek yeni
window-rxjava2
vewindow-rxjava3
yapıları.
API Değişiklikleri
- Bağımlıları eşit şekilde sağlamak için
WindowServices
ekleyin.- Pencere düzeni bilgisini kullanmak için eş yordam tabanlı API ekleyin. (Iab70f)
- Temel pencere yöneticisi kitaplığını Kotlin'e taşıyın. (Icca34)
Hata Düzeltmeleri
- Özellik sınırlarını temsil edecek yeni veri sınıfı ekleyin. (I6dcd1)
Sürüm 1.0.0-alpha06
5 Mayıs 2021
androidx.window:window:1.0.0-alpha06
yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.
Yeni Özellikler
- Kotlin'e taşıma işlemini başlattık ve bir sonraki sürümde tamamlayacağız.
- DeviceState, herkese açık API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'ı kullanın.
- Şu anda herhangi bir kullanım alanında desteklenmediğinden
STATE_FLIPPED
, FoldingFeature durumlarından kaldırılmıştır. - Kullanımdan kaldırılan diğer API'leri de kaldırdık.
API Değişiklikleri
- Kotlin'i bağımlılık olarak ekleme.
- Çekirdek kitaplığı Kotlin'e taşıyın. (Idd995)
DisplayFeature
derleyici kaldırıldı. (I61fa4)DeviceState
herkese açık API'den kaldırıldı, bunun yerineFoldingFeature
kullanın. (Id6079)- Uzantılardan cihaz durumu geri çağırmasını kaldırın. (I5ea83)
- FoldingFeature'dan
STATE_FLIPPED
öğesini kaldırın. (I9c4e1) - Kullanımdan kaldırılan kayıt yöntemlerini kaldırın. (Ib381b)
Sürüm 1.0.0-alpha05
24 Mart 2021
androidx.window:window:1.0.0-alpha05
yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.
Yeni Özellikler
FoldingFeature'a kullanışlı yöntemler ekledik. Bu sayede uygulamalar, özelliğin ayıran, kapatan özelliği ayırt edebilir ve menteşenin yönünü belirleyebilir. Ayrıca menteşe türünü de
Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırıyoruz. Eşzamanlı okuma yöntemleri, örtülü bir yarış koşulu bulunduğundan hataya açıktır. WindowLayoutInfo'da güncelleme almak için işleyicileri ve geri çağırmaları kaydedin.
API Değişiklikleri
- FoldingFeatures ile çalışmaya yönelik kolaylık yöntemleri ekleme (Ie733f)
- WindowManager'dan eşzamanlı okuma yöntemlerini kaldırır (I96fd4)
Sürüm 1.0.0-alpha04
10 Mart 2021
androidx.window:window:1.0.0-alpha04
yayınlandı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
- OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmamasına neden olan hatayı düzeltir. Şimdi boş bir WIndowLayoutInfo yayınlarız.
- Uygulama arka plana alınırken menteşe durumu değişirse durumun düzgün bir şekilde güncellenmemesine neden olan hata düzeltildi. Artık eyaletin tutarlı olması gerekiyor.
- Çalışma zamanı bağımlılıklarından gelen uyarıları yoksaymak için ProGuard dosyalarımızı güncelleyin.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer gönderin. (Ide935)
Sürüm 1.0.0-alpha03
18 Şubat 2021
androidx.window:window:1.0.0-alpha03
yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.
Yeni Özellikler
- OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer gönderin. Bu şekilde kitaplığı daha fazla cihazda kullanabilirsiniz. API'ler eşzamansız olduğundan, uygulamaların bir miktar savunma kodu yazması ve zaman aşımından sonra varsayılan bir değer yayması önerilir. OEM uygulamalarıyla ilgili herhangi bir garantimiz yoktur ve başlangıç değeri gecikebilir.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer gönderin. (Ide935)
Sürüm 1.0.0-alpha02
27 Ocak 2021
androidx.window:window:1.0.0-alpha02
yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
API'yi kolaylaştırmak ve hataları azaltmak için bazı API'leri kullanımdan kaldırdık. Önemli örneklerden bazıları, WindowManager'dan eşzamanlı okuma işlemlerini kaldırmak ve DeviceState'in kullanımdan kaldırılmasıdır. Eşzamanlı okuma işlemleri yarışma durumlarına yol açabilir ve hatalı kullanıcı arayüzüne sahip olabilir.
Görüntülü Reklam Ağı Özelliğini, ileride başka özelliklerin uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz olan FoldingFeature artık bir ekran kıvrımı veya menteşesini temsil ediyor. Bu aynı zamanda DeviceState'in yerine geçecek menteşenin durumunu da içerir.
WindowMetrics'i Android 11'de kullanıma sunduk. Bu özellik ile geliştiriciler, pencerelerdeki konum ve boyut gibi metrikleri (ör. ekranın ve sistem ek öğelerinin) sorgulamak için basit bir yöntem sunmuştur. Geliştiricilerin WindowMetrics'i kullanarak eski Android sürümlerini desteklemeye devam edebilmesi için API'yi bu sürümde geri bağlantılandırdık. WindowMetrics'ten
WindowManager#getCurrentWindowMetrics()
ve WindowManager#getmaximumWindowMetrics() API'lerinden ulaşılabilir.
API Değişiklikleri
- Bir sonraki alfa sürümünde kaldırılacak API'leri kullanımdan kaldırın (Ib7cc4)
ExtensionInterface
öğesini, uygunsuz Etkinlik referanslarını kabul edecek şekilde günceller. (I07ded)- WindowMetrics API kullanıma sunuldu. (I3ccee)
- WindowManager'dan eşzamanlı okuma yöntemlerini kaldırma (I69983)
- ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)
Hata Düzeltmeleri
- Görsel bağlamları kabul etmek için
ExtensionInterface
API'lerini güncelleyin. (I8e827)
Harici Katkı
- Verilere daha kolay erişmek için DeviceState ve WindowLayoutInfo öğelerini birleştirin. (Id34f4)
Sürüm 1.0.0-alpha01
27 Şubat 2020
androidx.window:window:1.0.0-alpha01
ve androidx.window:window-extensions:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir.
Bu, Pencere Yöneticisi kitaplığının ilk sürümüdür.
Yeni özellikler
DisplayFeature
: Bu yeni API, menteşe veya kıvrım gibi sürekli düz ekran yüzeylerindeki kesintileri belirlerDeviceState
: Bu yeni API tanımlı bir duruş listesinden (ör.CLOSED
,OPENED
,HALF_OPENED
vb.) telefonun o anki duruşunu gösterir.