Multi-Window — Android-də eyni anda ekranda bir neçə tətbiqi işə salmağa imkan verən çoxfunksiyalılıq rejimlər toplusudur. Sistem üç rejimi əhatə edir: ekranı iki hissəyə bölmək üçün Split Screen, video üçün mini-pəncərədə Picture-in-Picture və böyük ekranlarda ixtiyari ölçülü pəncərələr üçün Freeform. Android Developers (2025) məlumatına görə, Multi-Window dəstəyi ekran eni 600 dp və daha çox olan cihazlar üçün məcburidir və hər bir tərtibatçı tətbiqi mümkün pəncərə ölçüsü dəyişikliklərinə uyğunlaşdırmalıdır.
Əsas məqamlar
Multi-Window — Android-in 7.0 Nougat (API 24) versiyasında təqdim edilmiş, ekranda eyni anda iki və daha çox tətbiqi işə salmağa imkan verən funksiyadır. Bu rejim, bir pəncərəli rejimin məhsuldarlığı məhdudlaşdırdığı planşet və böyük ekranlı cihazların artan populyarlığına Google-un cavabı oldu.
Android 7.0-dan əvvəl hər tətbiq bütün ekranı tuturdu — tətbiqlər arasında keçid zamanı əvvəlki tətbiq yığışdırılırdı. Multi-Window bu modeli dəyişdi: indi tətbiq ekranın bir hissəsini tuta, aktiv qala bilər. Tərtibatçı üçün bu o deməkdir ki, onConfigurationChanged və ölçü dəyişikliklərinin idarə edilməsi məcburi olur.
Android 12L (2022) ilə Google Multi-Window-u böyük ekranlı cihazlar üçün standart rejim etdi — planşetlərdə bütün tətbiqlər çoxpəncərə rejiminə icazə verən modda işə düşür. İstisna yalnız manifestdə açıq qadağan olan tətbiqlərdir.
Split Screen — ən geniş yayılmış rejim. Ekran üfüqi və ya şaquli olaraq iki hissəyə bölünür, istifadəçi ayırıcını dartır. Telefon və planşetlərdə mövcuddur. Overview (Recents) vasitəsilə işə salınır — tətbiq ikonasını yuxarı və ya aşağı kənara dartmaqla.
Picture-in-Picture (PiP) — video və naviqasiya tətbiqləri üçün rejim. Məzmun daşınan mini-pəncərədə (təxminən 15–25% ekran) göstərilir. Android 8.0+ mövcuddur. Aktivləşdirmək üçün Activity-də enterPictureInPictureMode() istifadə olunur.
Freeform — masaüstü pəncərə menecerlərinə bənzər ixtiyari ölçülü pəncərə rejimi. Android TV və bəzi istehsalçıların böyük ekranlı cihazlarında (Samsung DeX) mövcuddur. Tətbiqlər başlıq və idarəetmə düymələri olan pəncərələrdə işə düşür.
İstifadəçi Multi-Window-u aktivləşdirdikdə, Android hər tətbiq üçün yeni Activity nümunəsi yaradır və ekran sahəsini bölüşdürür. Aktivliklər ayrı Tapşırıqlarda (Task) yerləşdirilir, lakin aralarında ayırıcı olan eyni StackView-dən istifadə edir.
Sistem hər Activity-ni ölçü dəyişikliyi barədə onConfigurationChanged() vasitəsilə xəbərdar edir. Activity bu hadisəni idarə etmirsə — o yenidən yaradılır (recreate). Split Screen üçün pəncərə eni platforma tərəfindən dəstəklənən minimum en olan 220 dp-ə qədər azala bilər.
Android tətbiqə manifestdə android:minWidth və android:minHeight vasitəsilə minimum eni bəyan etməyə imkan verir. Mövcud sahə göstərilən dəyərlərdən kiçik olarsa — Activity pauza vəziyyətinə keçir.
Multi-Window-u dəstəkləmək üçün manifestdə android:resizeableActivity="true" flagını təyin etmək lazımdır. Bu o deməkdir ki, tətbiq pəncərə dəyişdikdə ölçüsünü dəyişə bilər. Android 12L+-da standart olaraq bütün tətbiqlər resizeable sayılır — flag nəzərə alınmır.
Pəncərə ölçüsü dəyişdikdə Activity yenidən yaradıla bilər (standart) və ya manifestdə configChanges="screenSize|smallestScreenSize" göstərilibsə, hadisəni onConfigurationChanged-də idarə edə bilər. Əsas Activity-lər üçün configChanges göstərmək tövsiyə olunur ki, vəziyyət itkisinin qarşısı alınsın.
<activity
android:name=".MainActivity"
android:resizeableActivity="true"
android:configChanges="screenSize|smallestScreenSize|orientation" />
Ölçü dəyişikliyini dəstəkləməyən tətbiqlər üçün Android xəbərdarlıq dialoqu göstərir. Bu halda çoxpəncərə rejiminə keçid zamanı sistem Activity-ni bağlaya və yenidən işə salmaq təklifi ilə snackbar göstərə bilər.
Multi-Window Activity-nin standart həyat dövrünü dəyişir. Qonşu pəncərədə başqa tətbiq aktiv olduqda, cari Activity onPause() çağırışı alır, lakin onStop() yox — o görünən qalır, fokusda olmasa da. Bu vacibdir: video pleyer onPause-da deyil, onStop-da dayanmalıdır.
Tərtibatçı vəziyyətləri ayırd etməlidir: onPause + isInMultiWindowMode() = true yalnız fokus itkisi deməkdir, ekrandan getmək deyil. Video və animasiyalar üçün bu, oynatmanı dayandırmaq deyil, yalnız idarəetmə elementlərindən vurgulanmanı götürmək siqnalıdır.
Multi-Window-dan çıxışda onMultiWindowModeChanged() onResume()-dan əvvəl çağırılır. Bu, istifadəçi qarşılıqlı əlaqəyə başlamazdan əvvəl interfeysi tam ekran rejiminə yenidən qurmağa imkan verir.
Birinci qayda — vəziyyəti qorumaq. Çoxpəncərə rejimində Activity istənilən anda yenidən yaradıla bilər. Konfiqurasiya dəyişiklikləri arasında saxlanmalı olan bütün məlumatlar üçün ViewModel-də SavedStateHandle və ya onSaveInstanceState istifadə edin.
İkinci — minimum 220 dp enində test etmək. Bu dəyər Split Screen-də ən dar pəncərə hesab olunur. İnterfeys oxunaqlı və funksional qalmalıdır. Bəzi elementlər sərhədlərdən kənara çıxırsa — layoutlar arasında keçid üçün Window Size Class istifadə edin.
Üçüncü — Multi-Window-da işləməyən funksionallığı söndürmək. Məsələn, Camera ekran çox kiçik olduqda əlçatan olmaya bilər. Kameranı və ya digər tam ekran funksiyalarını işə salmazdan əvvəl isInMultiWindowMode() yoxlayın.
Tez-tez verilən suallar
Manifestdə android:resizeableActivity="false" təyin edin. Android 12L+-da flag böyük ekranlı cihazlar üçün nəzərə alınmır, buna görə tam qadağan üçün android:maxAspectRatio istifadə edin.
Activity-dən isInMultiWindowMode() çağırın. Metod tətbiq Split Screen, PiP və ya Freeform-da işləyirsə true qaytarır. Həmçinin onMultiWindowModeChanged()-ə abunə olmaq olar.
Android TV-də yalnız Picture-in-Picture rejimi mövcuddur. Split Screen və Freeform dəstəklənmir — televizorlar küncdə PiP pəncərəsi olan bir əsas ekrandan istifadə edir.
Foreground-servis rejimdən asılı olmayaraq işini davam etdirir. Lakin tətbiq PiP-ə keçərsə, sistem resurslara qənaət etmək üçün icranı müvəqqəti dayandıra bilər.
Android Multi-Window-da pəncərələr arasında Drag and Drop-u ClipData və View.OnDragListener vasitəsilə dəstəkləyir. Məlumat ContentProvider və ya FLAG_GRANT_READ_URI_PERMISSION ilə Intent vasitəsilə ötürülür.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun