Pencere Yöneticisi
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
15 Kasım 2023 | 1.2.0 | - | - | 1.3.0-alpha01 |
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 deposu sayfasını okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Groovy
dependencies { implementation "androidx.window:window:1.0.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.0.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.0.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.0.0" // For testing implementation "androidx.window:window-testing:1.0.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.0.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.0.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.0.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.0.0") // For testing implementation("androidx.window:window-testing:1.0.0") }
Geri bildirim
Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap 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-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şturma amaçlı test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamayla ilgili test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildiriyor.- Cihazda Uzantılar Sürümü'nü kullanıma sunun.
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 sürümünden sonraki önemli değişiklikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturma amaçlı test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamayla ilgili test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildiriyor.- Cihazda Uzantılar 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ı. Sürüm 1.2.0-rc01 bu kayıtları içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturma amaçlı test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamayla ilgili test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildiriyor.- Cihazda Uzantılar 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ı. Sürüm 1.2.0-beta04 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ı. Sürüm 1.2.0-beta03 bu kayıtları içerir.
Yeni Özellikler
- Uzantıların belirli bir sürümünün doğru çalışması için gereken 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 uzantısı sürümüne ek açıklama ekleyin.
- Etkinlik Yerleştirme bileşenindeki
isXXXSupported
öğesini kaldırın. (Ie3dae)
- Etkinlik Yerleştirme bileşenindeki
- Cihazdaki uzantı sürümünü bildirmek için
WindowSdkExtensions
uygulamasını tanıtın.- Gereken minimum uzantı sürümüne ek açıklama eklemek için
RequiresWindowSdkExtension
özelliğini ekleyin. (I05fd4)
- Gereken minimum uzantı sürümüne ek 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 kayıtları içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
FoldingFeature
oluşturma amaçlı test API'leri artık kararlı.- Sahte
ActivityEmbedding
değerleri ayarlamayla ilgili test API'leri artık kararlı. WindowLayoutInfoPublisherRule
artık birUiContext
öğesinden değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker
, katlanan özellik verileriniUiContext
parametreye bildiriyor.
API Değişiklikleri
- API değişikliklerinin 1.3'te (I857f5) kararlı bir sürümde devam etmesine izin vermek için
WindowArea
API'lerini deneysel olarak işaretler - API dosyaları, uyumluluk önleme ek açıklaması içerecek ş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'leri API yüzeyinden kaldırma.
- Eşzamanlı ekranları desteklemek için API'ler ekleyin.
- Zorunlu yeniden boyutlandırma geçersiz kılma özelliğini devre dışı bırakmak için bir özellik ekleyin.
- Minimum en boy oranını geçersiz kılmayı devre dışı bırakmak için özellik ekleyin.
- Etkinlik yerleştirme çevresinde birim testlerini desteklemek için
ActivityEmbeddingRule
uygulamasını sabitleyin.
API Değişiklikleri
Hata Düzeltmeleri
- Zorunlu yeniden boyutlandırma geçersiz kılması için kapsam dışında kalma uyumluluk özelliği ekleme (Ie7ab1)
SESSION_STATE_CONTENT_INVISIBLE
uzantısını uzantılar arayüzünden kaldırır. (I6ed19)- Etkinlik yerleştirme kapsamında birim testlerini desteklemek için
ActivityEmbeddingRule
politikasını sabitleyin. (I8d6b6) - Minimum en boy oranını geçersiz kılma özelliği için devre dışı bırakma uyumluluğu özelliği ekleniyor. (I66390)
- Kullanımdan kaldırılan WindowArea API'lerini (Ieb67c) kaldırır
- Yön isteği döngü ö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 uyumluluk özelliği ekleme (I0a7a2)
- Özelliğin zaten etkin olduğunu belirtmek için
WindowAreaComponent#STATUS_ACTIVE
ekleyin. (I62bc3) RearDisplayPresentationMode
API'leri ekleyin (I0401c)- Kararlı sürüm için arka plan rengi API'sini kaldırın. (I34c3e)
- Window Area API'lerini gizleyin. (I39de0)
SplitController
öğesindeSplitInfo
öğesini geçersiz kılmak için yöntemler ekleyin.SplitInfo
veActivityStack
için ikili oluşturmak üzere test yöntemleri ekleyin. (Icd69f)- Etiketi
ActivityRule.Builder
için isteğe bağlı hale getirin. (Ib0b44) RatioSplitType
,ExpandContainersSplit
veHingeSplitType
öğelerini kaldırın. Şu anSplitType
.#splitEqually()
,#expandContainers()
ve#splitByHinge
değerlerini sabitSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
veSPLIT_TYPE_HINGE
ile değiştirin- Menteşe bölme türünün yedek türünü ayarlama işlevini kaldırın. Geçerli cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamıyorsa üst görev kapsayıcısını eşit şekilde bölmek için yedeklenir. Yedek bölme türünü özelleştirmek için
SplitController#setSplitAttributesCalculator
öğesini kullanın. (Ifcc59)
add
/removeSplitCallback
öğesini kullanımdan kaldırınadd
/removeSplitCallback
öğeyiSplitControllerCallbackAdapter
hedefine taşıyınSplitInfo
listesini almak içinFlow
desteğini ekleyin (I7f1b6)
ActivityEmbeddingController
için bir test kuralı ekleyin (I42e9b)ActivityOptionsCompat
,ActivityEmbeddingOptions
olarak yeniden adlandırılıyor (I89301)- Etkinlik yerleştirme özelliğinin kullanılabildiğini belirtmek için
splitSupportStatus
ekleyin. (I10024) DEFAULT
değerini daha iyi temsil etmek içinSplitAttributes.BackgroundColor
ifadesini ekleyin. Opak olmayan animasyon arka plan renginin desteklenmediğini, böylece opak olmayan renklerin varsayılan olarak değerlendirileceğini ve böylece 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)
ekleyin (I66c7f)
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 kaydetmeleri içerir.
Yeni Özellikler
- Test API'sini, belirtilmemiş katlama özellikleri için sabit bir değer içerecek şekilde güncelleyin.
WindowLayoutInfoPublishRule
ile geçersiz kılma işlemi, Bağlama Dayalı API de dahil olmak üzere tümwindowLayoutInfo
değerlerini geçersiz kılar.
API Değişiklikleri
- Belirtilmemiş merkeze katlama özelliği için sabit değer ekleyin. (I7530c)
Hata Düzeltmeleri
Context
tabanlıWindowLayoutInfo
üzerinde 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 kararlı hale getirin. ActivityEmbeddingRule
uygulamasının düzeyi kararlı seviyeye yükseltildi.
WindowMetricsCalculatorRule
uygulamasının düzeyi kararlı seviyeye yükseltildi.
Test için FoldingFeature
oluşturan yardımcı program işlevleri kararlı sürüme yükseltildi.
API Değişiklikleri
- Etkinlik yerleştirme kapsamında birim testlerini desteklemek için
ActivityEmbeddingRule
politikasını sabitleyin. (I8d6b6) WindowMetrisCalculatorTestRule
, JVM testleri için saplama metriklerine izin vermeye devam ediyor. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.- JVM testini desteklemek amacıyla test API'lerini
WindowLayoutInfo
için 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ı. Sürüm 1.1.0 bu kayıtları içerir.
1.0.0 sürümünden sonraki önemli değişiklikler
Etkinlik Yerleştirme
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
, uygulama manifestindeki<application>
etiketinin boole özelliği olarak eklendi.isSplitSupported
kullanımdan kaldırıldı ve bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak içinsplitSupportStatus
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 olarak yeniden düzenlendi:Activity
veyaActivityStack
ile ilgili API'ler 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 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
öğesineSplitAttributes
hesap makinesi işlevi eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
SplitAttributesCalculator
API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek içinisSplitAttributesCalculatorSupported()
EmbeddingRule#tag
alanı eklendi.SplitRule
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.
- Varsayılan değeri 600 dp olan
minHeightDp
eklendi. minWidth
, varsayılan değer 600 dp olanminWidthDp
olarak değiştirildi.minSmallestWidth
, varsayılan değer 600 dp olanminSmallestWidthDp
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
FinishBehavior
sınıf tanımlandı. - Özellik değişiklikleri, Oluşturucu için iç içe yerleştirilmiş
SplitPairRule
veSplitPlaceholderRule
sınıfına uygulandı.
SplitInfo#getSplitRatio()
, bölmeyle ilgili ek bilgiler sağlamak içinSplitInfo#getSplitAttributes()
ile değiştirildi.
Pencere Düzeni
WindowInfoTracker
için deneysel etkinlik olmayan 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 uygulama için bölme davranışlarını önceden optimize etmesini sağlar. SplitInfo
oran- Mevcut dağılımın gruplanmış 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. }
- Mevcut dağılımın gruplanmış olup olmadığını kontrol edin:
- SplitController taşıma işlemleri:
SplitController.getInstance(Context)
içinSplitController.getInstance()
değişikliği.RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
içinSplitController.initialize(Context, @ResId int)
değişikliği.ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
içinSplitController.getInstance().isActivityEmbedded(Activity)
değişikliği.RuleController.getInstance(Context).addRule(rule)
içinSplitController.getInstance().registerRule(rule)
değişikliği.RuleController.getInstance(Context).removeRule(rule)
içinSplitController.getInstance().unregisterRule(rule)
değişikliği.RuleController.getInstance(Context).clearRules()
içinSplitController.getInstance().clearRegisteredRules()
değişikliği.RuleController.getInstance(Context).getRules()
içinSplitController.getInstance().getSplitRules()
değişikliği.
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
sayısını piksel cinsindendisplayMetrics#density
sayısına bölebilir.
- Bitiş davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FinishBehavior.NEVER
içinFINISH_NEVER
değişikliği.FinishBehavior.ALWAYS
içinFINISH_ALWAYS
değişikliği.FinishBehavior.ADJACENT
içinFINISH_ADJACENT
değişikliği.
- Düzen yönü
SplitAttributes.LayoutDirection
konumuna taşınmalıdır:SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
içinltr
değişikliği.SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
içinrtl
değişikliği.SplitAttributes.LayoutDirection.LOCALE
içinlocale
değişikliği.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
adlı alana 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ği yapıldı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 "SplitSplitRule.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ı. Sürüm 1.1.0-rc01 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ı. Sürüm 1.1.0-beta01 bu kayıtları içerir.
Etkinlik Yerleştirme
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
, uygulama manifestindeki<application>
etiketinin boole özelliği olarak eklendi.isSplitSupported
kullanımdan kaldırıldı ve bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak içinsplitSupportStatus
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 olarak yeniden düzenlendi:Activity
veyaActivityStack
ile ilgili API'ler 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 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
öğesineSplitAttributes
hesap makinesi işlevi eklendi:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
- SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için
isSplitAttributesCalculatorSupported()
EmbeddingRule#tag
alanı eklendi.SplitRule
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.
- Varsayılan değeri 600 dp olan
minHeightDp
eklendi. minWidth
, varsayılan değer 600 dp olanminWidthDp
olarak değiştirildi.minSmallestWidth
, varsayılan değer 600 dp olanminSmallestWidthDp
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
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()
, bölmeyle ilgili ek bilgiler sağlamak içinSplitInfo#getSplitAttributes()
ile değiştirildi.
Pencere Düzeni
WindowInfoTracker
için etkinlik olmayan 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 uygulamaya ilişkin bölme davranışlarını önceden optimize etmesini sağlar. SplitInfo
oran- Mevcut dağılımın gruplanmış 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. }
- Mevcut dağılımın gruplanmış olup olmadığını kontrol edin:
SplitController
taşıma işlemi:SplitController.getInstance(Context)
içinSplitController.getInstance()
değişikliği.RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
içinSplitController.initialize(Context, @ResId int)
değişikliği.ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
içinSplitController.getInstance().isActivityEmbedded(Activity)
değişikliği.RuleController.getInstance(Context).addRule(rule)
içinSplitController.getInstance().registerRule(rule)
değişikliği.RuleController.getInstance(Context).removeRule(rule)
içinSplitController.getInstance().unregisterRule(rule)
değişikliği.RuleController.getInstance(Context).clearRules()
içinSplitController.getInstance().clearRegisteredRules()
değişikliği.RuleController.getInstance(Context).getRules()
içinSplitController.getInstance().getSplitRules()
değişikliği.
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
sayısını piksel cinsindendisplayMetrics#density
sayısına bölebilirsiniz.
- Bitiş davranışı sabitleri,
FinishBehavior
enum benzeri sınıf sabitlerine taşınmalıdır:FinishBehavior.NEVER
içinFINISH_NEVER
değişikliği.FinishBehavior.ALWAYS
içinFINISH_ALWAYS
değişikliği.FinishBehavior.ADJACENT
içinFINISH_ADJACENT
değişikliği.
- Düzen yönü
SplitAttributes.LayoutDirection
konumuna taşınmalıdır:SplitAttributes.LayoutDirection.LEFT_TO_RIGHT
içinltr
değişikliği.SplitAttributes.LayoutDirection.RIGHT_TO_LEFT
içinrtl
değişikliği.SplitAttributes.LayoutDirection.LOCALE
içinlocale
değişikliği.splitRatio
,SplitAttributes.SplitType.ratio(splitRatio)
adlı alana 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 vardır. Diğer mülkler, belirleyicilere taşınır. Ayrıntılar için "SplitSplitRule.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ı. Sürüm 1.1.0-alpha06 bu kayıtları içerir.
Yeni Özellikler
- Kullanıcı arayüzü bağlamından
WindowLayoutInfo
almanın deneysel sürümünü gösterin.
API Değişiklikleri
- Etkinlik yerleştirme özelliğinin kullanılabildiğini belirtmek için
splitSupportStatus
ekleyin. (I10024) - UI Bağlamı
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'ler kullanıma sunuldu. (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 oluşturucular, uygulamalar tarafından çağrılmamaları gerektiğinden herkese açık API'lerden kaldırıldı.
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 olduğunda veya bu değerden küçük olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)RuleController#parseRules
değerini statik olarak değiştirin (I785df)- ActivityEmbedding API'lerini iyileştirin
- API adlandırmasını hizalama: Birden fazla örnek için ekle/kaldır seçeneğ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 - Kuralla ilgili API'leri
SplitController
öğesindenRuleController
tekil öğesine çıkarın. : addRule
removeRule
getRules
setRules
clearRules
parseRules
SplitController
öğesinden#isActivityEmbedded
öğesiniActivityEmbeddingController
tekiline çıkarın. :isActivityEmbedded
SplitController#initialize
öğesini kaldır XML dosyasından kural belirlemek 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 çalışma zamanı kuralları olan statik kuralları ayırt etmiyoruz. Bununla birlikte, statik XML kural tanımlarına veya çalışma zamanında kaydedilmiş olduklarından bağımsız olarak tüm kuralları temizlemek için
#clearRules
sonucunu çağırmak gerekir.SplitController#clearRegisteredRules
eski davranışını uygulamak 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.- Minimum boyutları isteğe bağlı olarak almak için
SplitRule
Oluşturucu için yeniden düzenleyin. (I95f17)
SplitController
uygulamasını başlatmak için Bağlam bilgisi iletin (I42549)SplitRule#layoutDir
adlı dosya#layoutDirection
,SplitRule Builder#setLayoutDir
adı iseBuilder#setLayoutDirection
olarak yeniden adlandırıldı. (I3f6d1)
Sürüm 1.1.0-alpha04
9 Kasım 2022
androidx.window:window-*:1.1.0-alpha04
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 sunun.- Deneysel API etiketleri
ActivityEmbedding
API'lerden kaldırıldı. - Tercih edilen oluşturma yöntemi
Builder
olduğundanActivityRule
oluşturucusunu gizleyin. WindowMetrics
üzerindeWindowInsets
kullanmak 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
değerini 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 etmesine izin vermek için
ActivityFilter#componentName
abdActivityFilter#intentAction
ekleyin (I41f22) @Deprecated
API'lerini deneysel API'den (I216b3) kaldırın- Activity Embedding API'leri (I69ebe) için
@ExperimentalWindowApi
politikasını kaldırın 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
Özelliği Javadoc'u ve sınıf adını güncelleme (Ia1386)- AndroidManifest.xml dosyasında (Id1ad4) kullanılacak
ActivityEmbedding
özellik etiketi adları ekleniyor - Yeni API
SplitPlaceholderFinishBehavior
veSplitPlaceholderRule.finishPrimaryWithPlaceholder
eklendi. Bu API, yer tutucu etkinliklerinin ne zaman tamamlandığını ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcutSplitPlaceholderRule.finishPrimaryWithSecondary
API'sinin yerini alır. (I64647)
Hata Düzeltmeleri
- Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için
RearDisplay
modunu etkinleştirmek üzereWindowAreaController
ve API'ler kullanıma sunuldu. (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 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ı. Sürüm 1.1.0-alpha02 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 kayıtları içerir.
Yeni Özellikler
- Java ve RxJava'yı destekleyen 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 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 ayrıntılı inceleyin.
API Değişiklikleri
- Bir etkinliğin yerleştirilip yerleştirilmediğini kontrol etmek için kullanılan herkese açık API. (I39eb7)
Hata Düzeltmeleri
- Etkinlik bölümlerindeki kapsayıcılar için bitirme davranışını özelleştiren API'ler ekleyin (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
tarihlerine kadar katlanabilir telefonlar için destek. Geçerli 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 kayıtları içerir.
Yeni Özellikler
WindowInfoTracker
tarihinden itibaren katlanabilir telefonlar için destek eklendi.- Geçerli ve maksimum
WindowMetrics
hesaplama yöntemlerini 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ığı yapın.
- Roboecric kullanan geliştiricileri desteklemek amacıyla WindowMetricsCalculator için basit bir TestRule ekleyin.
API Değişiklikleri
- Uzantıları ayıklama (I25a5f)
- ActivityStack'de isBlank'i 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 ekleyin. Bu başlangıç 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ı. Bunun yerine lütfen WindowMetricsCalculator (Icda5f) kullanın
- Uzantılar API'si güncellendi. (Ica92b)
- Etkinlikleri yerleştirmeye ve bunları üst görev penceresi içinde yan yana göstermeye olanak tanıyan yeni bir özellik için arayüz eklendi. (I5711d)
- WindowMetrics ve WindowLayoutInfo oluşturucuları gizlendi, lütfen bunun yerine test API'lerini kullanın. (I5a1b5)
- Sahte WindowLayoutInfo nesneleri oluşturmak için bir API ekleyin. (I4a2fd)
Hata Düzeltmeleri
- Bellek sızıntısı düzeltildi. (I3fc79, b/202989046)
Sürüm 1.0.0-beta02
1 Eylül 2021
androidx.window:window-*:1.0.0-beta02
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 ekleme. (I9f1b6)
- Dikdörtgeni kabul eden bir test FoldingFeature oluşturmak için bir test yöntemi ekleyin. Bu, gerçek bir etkinlik yerine Robofactric'i kullanırken test yapmayı daha kolay hale getirecektir. (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 sabitler kaldırıldı ve
FoldingFeature
arayüzü arayüze dönüştürüldü.
API Değişiklikleri
- Eski sabitleri kaldırın ve FoldFeature'ı arayüz yapın. (I9a2d5)
Hata Düzeltmeleri
Test Core
kitaplığını temel alan kitaplıklar1.4.0
sürümüne yükseltildi ve artık Android platform S sürümüyle çalışacak. (I88b72, b/189353863)
Sürüm 1.0.0-alpha10
4 Ağustos 2021
androidx.window:window-*:1.0.0-alpha10
yayınlandı. Sürüm 1.0.0-alpha10 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 pencere metriklerini WindowInfoRepository'de bir Akışa dönüştürün.
- WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandırın
- Test FoldingFeature nesnelerini 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'i ActivityExtensions olarak yeniden adlandırın Depodan Depoya değiştirin. (I61a16)
- Sınıflar için paketleri güncelleme. (I23ae2)
- WindowMetrics'i WindowInfoRepo'dan kaldırma (I24663)
- 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 geri çağırmayı kaldırın. (Ia4d15)
- Test görüntülü reklam özelliklerini oluşturmak için yardımcı yöntem ekleyin.
- occlusionMode ayarını occlusionType olarak değiştirin (If4cff)
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, katlama özelliği güncellemelerini tetiklememesiyle ilgili 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ı sabit değerlerinden sınırsız enum'lara geçiş.
- Test katlama özellikleri oluşturmak için bir test aracı ekleyin.
API Değişiklikleri
- Test görüntülü reklam özelliklerini oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
occlusionMode
olan fiyatocclusionType
olarak değiştir.
Hata Düzeltmeleri
- Veri akışlarının birden çok tüketicisini eklerken başlangıç değerini açığa çıkarı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 almak için WindowInfoRepository’yi kullanın. (I57f66, Ida620)
Sürüm 1.0.0-alpha07
2 Haziran 2021
androidx.window:window-*:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.
Yeni Özellikler
- Temel pencere kitaplığını Kotlin'e taşıyın. Gelecekte eşzamansız verileri ortaya çı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 kullanıma sunan yeni
window-java
yapısı. - RxJava tarafından uyarlanmış API'leri açığa çıkaracak 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 kayıtları içerir.
Yeni Özellikler
- Kotlin'e geçiş sürecini başlattık ve bir sonraki sürümde tamamlayacağız.
- DeviceState, herkese açık API'den kaldırıldı. Bunun yerine lütfen FoldingFeature'ı kullanın.
- Şu anda herhangi bir kullanım alanında desteklenmediği için
STATE_FLIPPED
, FoldingFeature durumlarından kaldırıldı. - Ayrıca 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.
- Temel kitaplığı Kotlin'e taşıyın. (Idd995)
DisplayFeature
derleyici kaldırıldı. (I61fa4)- Herkese açık API'den
DeviceState
kaldırıldı. Bunun yerineFoldingFeature
kullanın. (Id6079) - Uzantılardan cihaz durumunu geri çağırma işlemini kaldırın. (I5ea83)
STATE_FLIPPED
adlı kişiyi FoldingFeature'dan 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ırıcı olup olmadığını anlayabilir ve menteşenin yönünü belirleyebilir. Aynı zamanda menteşe türünü de
Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırıyoruz. Eşzamanlı okuma yöntemleri, dolaylı bir yarış koşulu olduğundan hataya açıktır. WindowLayoutInfo ile ilgili güncellemeleri 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ı. 1.0.0-alpha04 sürümü 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 doğru bir şekilde güncellenmemesine neden olan hata düzeltildi. Artık eyalet tutarlı olmalı.
- Ç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 at. (Ide935)
Sürüm 1.0.0-alpha03
18 Şubat 2021
androidx.window:window:1.0.0-alpha03
yayınlandı. Sürüm 1.0.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
- OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer belirtin. Bu şekilde kitaplığın daha fazla cihazda kullanılması kolaylaşır. 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ı için herhangi bir garantimiz yoktur ve başlangıç değeri gecikebilir.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer at. (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 basitleştirmek ve hataları azaltmak için bazı API'leri kullanımdan kaldırdık. Önemli örneklerden bazıları, eşzamanlı okuma işlemlerini WindowManager'dan kaldırmak ve DeviceState'in kullanımdan kaldırılmasıdır. Eşzamanlı okuma işlemleri, yarışma koşullarına neden olabilir ve yanlış kullanıcı arayüzüne sahip olabilir.
DisplayFeature'ı ileride başka özelliklerin uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz FoldingFeature artık ekran katlama veya menteşe şeklinde temsil ediliyor. Bu veriler, DeviceState'in yerini alacak menteşenin durumunu da içerir.
Android 11'de WindowMetrics'in kullanıma sunulmasıyla birlikte geliştiriciler bir pencereyle ilgili metrikleri (ör. ekranın ekrandaki konumu ve boyutu ve tüm sistem ekleri) kolayca sorgulayabilmesini sağladı. Bu sürümde, geliştiricilerin WindowMetrics'ten yararlanabilmesi ve eski Android sürümlerini desteklemeye devam edebilmesi için API'yi geri aldık. WindowMetrics
WindowManager#getCurrentWindowMetrics()
ve WindowManager#getmaximumWindowMetrics() API'leri aracılığıyla edinilebilir.
API Değişiklikleri
- Sonraki alfa sürümünde kaldırılacak API'leri kullanımdan kaldırın (Ib7cc4)
- Açık Etkinlik referanslarını kabul etmek için
ExtensionInterface
öğesini günceller. (I07ded) - WindowMetrics API'yi kullanıma sunduk. (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'yu birleştirin. (Id34f4)
Sürüm 1.0.0-alpha01
27 Şubat 2020
androidx.window:window:1.0.0-alpha01
ve androidx.window:window-extensions:1.0.0-alpha01
yayınlandı. Sürüm 1.0.0-alpha01 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şeler veya kıvrımlar gibi sürekli düz ekran yüzeylerindeki aksaklıkları belirlerDeviceState
: Bu yeni API, tanımlanmış duruşlar listesinden (ör.CLOSED
,OPENED
,HALF_OPENED
vb.) telefonun mevcut duruşunu sağlar.