Jendela desktop memungkinkan pengguna menjalankan beberapa aplikasi secara bersamaan di jendela aplikasi yang dapat diubah ukurannya untuk pengalaman serbaguna seperti desktop.
Pada Gambar 1, Anda dapat melihat pengaturan layar dengan windowing desktop yang diaktifkan. Hal-hal yang perlu diperhatikan:
- Pengguna dapat menjalankan beberapa aplikasi secara berdampingan secara bersamaan.
- Taskbar berada di posisi tetap di bagian bawah layar yang menampilkan aplikasi yang sedang berjalan. Pengguna dapat menyematkan aplikasi untuk akses cepat.
- Panel header baru yang dapat disesuaikan menghiasi bagian atas setiap jendela dengan kontrol seperti minimalkan dan maksimalkan.
Secara default, aplikasi akan dibuka dengan layar penuh di tablet Android. Untuk meluncurkan aplikasi dalam jendela desktop, tekan lama handle jendela di bagian atas layar, lalu tarik handle dalam UI, seperti yang terlihat pada gambar 2.
Saat aplikasi terbuka di jendela desktop, aplikasi lain juga akan terbuka di jendela desktop.
Pengguna juga dapat memanggil jendela desktop dari menu yang muncul di bawah handel jendela saat Anda mengetuk atau mengklik handel atau menggunakan pintasan keyboard Tombol Meta (Windows, Command, atau Penelusuran) + Ctrl + Bawah.
Pengguna keluar dari jendela desktop dengan menutup semua jendela aktif atau dengan menarik handel jendela di bagian atas jendela desktop dan menarik aplikasi ke bagian atas layar. Pintasan keyboard Meta + H juga keluar dari jendela desktop dan menjalankan aplikasi dalam layar penuh lagi.
Untuk kembali ke jendela desktop, ketuk atau klik kartu ruang desktop di layar Terbaru.
Mode kompatibilitas dan kemampuan untuk diubah ukurannya
Dalam jendela desktop, aplikasi dengan orientasi terkunci dapat diubah ukurannya secara bebas. Artinya, meskipun aktivitas terkunci ke orientasi potret, pengguna masih dapat mengubah ukuran aplikasi ke jendela orientasi lanskap.
Aplikasi yang dideklarasikan sebagai tidak dapat diubah ukurannya (yaitu,
resizeableActivity = false
)
akan diskalakan UI-nya dengan tetap mempertahankan rasio aspek yang sama.
Aplikasi kamera yang mengunci orientasi atau dideklarasikan sebagai tidak dapat diubah ukurannya memiliki perlakuan khusus untuk jendela bidik kameranya: jendela dapat diubah ukurannya sepenuhnya, tetapi jendela bidik mempertahankan rasio aspek yang sama. Dengan mengasumsikan aplikasi selalu berjalan dalam mode potret atau lanskap, aplikasi akan melakukan hardcode atau membuat asumsi yang menyebabkan kesalahan penghitungan pratinjau atau orientasi gambar yang diambil atau rasio aspek yang menghasilkan gambar yang diregangkan, miring, atau terbalik.
Hingga aplikasi siap untuk menerapkan jendela bidik kamera yang sepenuhnya responsif, perlakuan khusus memberikan pengalaman pengguna yang lebih dasar yang mengurangi efek yang mungkin ditimbulkan oleh asumsi yang salah.
Untuk mempelajari mode kompatibilitas untuk aplikasi kamera lebih lanjut, lihat Mode kompatibilitas perangkat.
Inset header yang dapat disesuaikan
Semua aplikasi yang berjalan dalam jendela desktop memiliki panel header, bahkan dalam
mode imersif.
Pastikan konten aplikasi Anda tidak terhalang oleh panel header.
Panel header adalah jenis inset kolom teks:
androidx.compose.foundation.layout.WindowInsets.Companion.captionBar()
;
dalam tampilan, WindowInsets.Type.captionBar()
,
yang merupakan bagian dari panel sistem.
Anda dapat mempelajari lebih lanjut cara menangani inset di Menampilkan konten layar penuh di aplikasi Anda dan menangani inset jendela di Compose.
Panel header juga dapat disesuaikan. Android 15 memperkenalkan jenis tampilan
APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND
untuk membuat
panel header transparan agar aplikasi dapat menggambar konten kustom di dalam
kolom header.
Selanjutnya, aplikasi bertanggung jawab untuk menata gaya bagian atas kontennya agar terlihat seperti kolom teks (latar belakang, konten kustom, dan sebagainya) dengan pengecualian elemen teks sistem (tombol tutup dan perbesar), yang digambar oleh sistem pada kolom teks transparan di bagian atas aplikasi.
Aplikasi dapat mengalihkan tampilan elemen sistem di dalam teks untuk
tema terang dan gelap menggunakan APPEARANCE_LIGHT_CAPTION_BARS
,
serupa dengan cara status bar dan menu navigasi diaktifkan.
Android 15 juga memperkenalkan metode
WindowInsets#getBoundingRects()
yang memungkinkan aplikasi melakukan introspeksi inset panel teks secara lebih mendetail.
Aplikasi dapat membedakan antara area tempat sistem menggambar elemen sistem dan
area yang tidak digunakan tempat aplikasi dapat menempatkan konten kustom tanpa tumpang-tindih elemen sistem.
Daftar objek Rect
yang ditampilkan oleh API menunjukkan region sistem yang
harus dihindari. Ruang yang tersisa (dihitung dengan mengurangi persegi panjang
dari Insets panel teks) adalah tempat aplikasi dapat menggambar tanpa
tumpang-tindih elemen sistem dan dengan kemampuan untuk menerima input.
Dukungan multitasking dan multi-instance
Multitasking adalah inti dari jendela desktop, dan mengizinkan beberapa instance aplikasi Anda dapat sangat meningkatkan produktivitas pengguna.
Android 15 memperkenalkan PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI, yang dapat ditetapkan aplikasi untuk menentukan bahwa UI sistem harus ditampilkan agar aplikasi memungkinkannya diluncurkan sebagai beberapa instance.
Mengelola instance aplikasi dengan gestur tarik
Dalam mode multi-aplikasi, pengguna dapat memulai instance aplikasi baru dengan menarik elemen tampilan dari jendela aplikasi. Pengguna juga dapat memindahkan elemen di antara instance aplikasi yang sama.
Android 15 memperkenalkan dua flag untuk menyesuaikan perilaku tarik lalu lepas:
DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG
: Menunjukkan bahwa tarik yang tidak tertangani harus didelegasikan ke sistem untuk dimulai jika tidak ada jendela yang terlihat yang menangani operasi lepas. Saat menggunakan tanda ini, pemanggil harus menyediakanClipData
denganItem
yang berisiIntentSender
yang tidak dapat diubah ke aktivitas yang akan diluncurkan (lihatClipData.Item.Builder#setIntentSender()
). Sistem dapat meluncurkan intent atau tidak berdasarkan faktor seperti ukuran layar atau mode jendela saat ini. Jika sistem tidak meluncurkan intent, intent akan dibatalkan melalui alur tarik lalu lepas normal.DRAG_FLAG_GLOBAL_SAME_APPLICATION
: Menunjukkan bahwa operasi tarik dapat melewati batas jendela (untuk beberapa instance aplikasi yang sama).Saat
startDragAndDrop()
dipanggil dengan flag ini ditetapkan, hanya jendela yang terlihat milik aplikasi yang sama yang dapat berpartisipasi dalam operasi tarik dan menerima konten yang ditarik.
Pengoptimalan tambahan
Menyesuaikan peluncuran aplikasi dan mentransisikan aplikasi dari jendela desktop ke layar penuh.
Menentukan ukuran dan posisi default
Tidak semua aplikasi, meskipun dapat diubah ukurannya, memerlukan jendela besar untuk menawarkan nilai bagi pengguna.
Anda dapat menggunakan metode ActivityOptions#setLaunchBounds()
untuk menetapkan ukuran dan posisi default saat aktivitas diluncurkan.
Masuk ke layar penuh dari ruang desktop
Aplikasi dapat beralih ke mode layar penuh dengan memanggil Activity#requestFullScreenMode()
.
Metode ini menampilkan layar penuh aplikasi langsung dari jendela desktop.