Multi-Window: mahiyyəti, Android-də çoxfunksiyalılıq rejimləri

Müəllif: IT Sectr Dərc olunub: 2026-06-08 Oxuma vaxtı: 10 dəq

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 üç rejimli çoxfunksiyalılıq sistemi: Split Screen, PiP, Freeform.
  • Split Screen — iki tətbiq yan-yana, ayırıcı dartılır, nisbətlər dəyişir.
  • Picture-in-Picture — digər tətbiqlərin üstündə mini-pəncərədə video.
  • Freeform — Android TV və böyük ekranlarda ixtiyari ölçülü pəncərələr.
  • ResizeableActivity — manifestdə çoxpəncərə rejimini dəstəkləmək üçün flag.

Android-də Multi-Window nədir?

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.

Multi-Window rejimləri: Split Screen, PiP, Freeform

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.

Multi-Window necə işləyir

İ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:minWidthandroid: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.

Activity-ni çoxpəncərə rejiminə uyğunlaşdırma

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.

xml
<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 və Activity həyat dövrü

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.

Multi-Window üçün ən yaxşı təcrübələr

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

Tətbiqim üçün Multi-Window-u necə qadağan etmək olar?

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.

Tətbiqin Multi-Window-da olduğunu necə müəyyən etmək olar?

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.

Multi-Window Android TV-də işləyir?

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.

Multi-Window-da foreground-servislə nə baş verir?

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.

Pəncərələr arasında sürükləmə (Drag and Drop) necə işləyir?

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ə

  • Multi-Window — tətbiqlərin eyni vaxtda işləməsi üçün üç rejimli Android çoxfunksiyalılığı.
  • Split Screen — dartılan ayırıcı ilə ekranın iki hissəyə bölünməsi.
  • Picture-in-Picture — Android 8.0+ üçün mini-pəncərədə video.
  • Freeform — Android TV və Samsung DeX-də ixtiyari ölçülü pəncərələr.
  • resizeableActivity — rejimi dəstəkləmək üçün manifestdə məcburi flag.
  • onMultiWindowModeChanged — giriş/çıxışda interfeysi yenidən qurmaq üçün callback.
  • Yekun — Multi-Window 2022-ci ildən böyük ekranlarda bütün tətbiqlər üçün dəstəklənməlidir.

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.

Layihəni müzakirə et

Həm də oxuyun