Masaüstü pencereleri, kullanıcıların çok yönlü, masaüstü benzeri bir deneyim için yeniden boyutlandırılabilir uygulama pencerelerinde aynı anda birden fazla uygulama çalıştırmasına olanak tanır.
Şekil 1'de, masaüstü pencerelemesi etkinleştirilmiş olarak ekranın düzenini görebilirsiniz. Önemli noktalar:
- Kullanıcılar aynı anda birden fazla uygulamayı yan yana çalıştırabilir.
- Görev çubuğu, ekranın alt kısmında çalışan uygulamaları gösteren sabit bir konumdadır. Kullanıcılar, hızlı erişim için uygulamaları sabitleyebilir.
- Yeni özelleştirilebilir başlık çubuğu, küçültme ve büyütme gibi denetimlerle her pencerenin üst kısmını süsler.
Varsayılan olarak, uygulamalar Android tabletlerde tam ekran olarak açılır. Bir uygulamayı masaüstü penceresinde başlatmak için ekranın üst kısmındaki pencere tutamacını basılı tutun ve tutamacın ucunu kullanıcı arayüzüne sürükleyin (Şekil 2'de gösterildiği gibi).
Bir uygulama masaüstü penceresinde açıkken diğer uygulamalar da masaüstü pencerelerinde açılır.
Kullanıcılar, pencere simgesine dokunduğunuzda veya tıkladığınızda ya da Meta tuşu (Windows, Komut veya Arama) + Ctrl + Aşağı klavye kısayolunu kullandığınızda pencere simgesinin altında görünen menüden de masaüstü penceresini etkinleştirebilir.
Kullanıcılar, tüm etkin pencereleri kapatarak veya masaüstü penceresinin üst kısmındaki pencere tutamacını tutup uygulamayı ekranın üst kısmına sürükleyerek masaüstü pencere modundan çıkar. Meta + H klavye kısayolu da masaüstü pencere modundan çıkar ve uygulamaları tekrar tam ekranda çalıştırır.
Masaüstü pencere moduna dönmek için Son Aramalar ekranındaki masaüstü alanı karosuna dokunun veya bu karoyu tıklayın.
Yeniden ayarlanabilirlik ve uyumluluk modu
Masaüstü penceresinde, kilitli yönü olan uygulamalar serbestçe yeniden boyutlandırılabilir. Yani bir etkinlik dikey yönde kilitli olsa bile kullanıcılar uygulamayı yatay yönde bir pencereye yeniden boyutlandırabilir.
Yeniden boyutlandırılamaz olarak tanımlanan uygulamaların (yani resizeableActivity = false
) aynı en boy oranı korunarak kullanıcı arayüzü ölçeklendirilir.
Yönlendirmeyi kilitleyen veya yeniden boyutlandırılamaz olarak tanımlanan kamera uygulamalarının kamera vizörleri için özel bir işlem uygulanır: Pencere tamamen yeniden boyutlandırılabilir ancak vizör aynı en boy oranını korur. Uygulamalar her zaman dikey veya yatay olarak çalışacağını varsayarak önizleme veya çekilen görüntünün yönü ya da en boy oranında yanlış hesaplamalara yol açan kodlar yerleştirir veya başka varsayımlarda bulunur. Bu da uzatılmış, yan yana veya baş aşağı görüntülere neden olur.
Uygulamalar tamamen duyarlı kamera vizörlerini uygulamaya hazır olana kadar özel işlem, yanlış varsayımların yol açabileceği etkileri azaltan daha temel bir kullanıcı deneyimi sağlar.
Kamera uygulamaları için uyumluluk modu hakkında daha fazla bilgi edinmek istiyorsanız Cihaz uyumluluk modu başlıklı makaleyi inceleyin.
Özelleştirilebilir başlık ekleri
Masaüstü penceresinde çalışan tüm uygulamalarda, tam sayfa modunda bile bir başlık çubuğu bulunur.
Uygulama içeriğinizin başlık çubuğu tarafından gizlenmediğinden emin olun.
Başlık çubuğu, altyazı çubuğu içe yerleştirilme türüdür:
androidx.compose.foundation.layout.WindowInsets.Companion.captionBar()
;
görüntülerde, sistem çubuklarının bir parçası olan WindowInsets.Type.captionBar()
.
Uygulamanızda içeriği kenarlara kadar görüntüleme ve Oluştur'da pencere içe eklemelerini işleme başlıklı makalede içe eklemeleri işleme hakkında daha fazla bilgi edinebilirsiniz.
Başlık çubuğu da özelleştirilebilir. Android 15, uygulamaların başlık çubuğuna özel içerik çizmesine olanak tanımak için başlık çubuğunu şeffaf hale getiren APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND
görünüm türünü kullanıma sundu.
Bu durumda, uygulamaların içeriklerinin üst kısmını, sistem tarafından uygulamanın üst kısmındaki şeffaf altyazı çubuğunda çizilen sistem altyazı öğeleri (kapatma ve büyütme düğmeleri) hariç olmak üzere altyazı çubuğuna (arka plan, özel içerik vb.) benzeyecek şekilde biçimlendirmesi gerekir.
Uygulamalar, durum çubuğu ve gezinme çubuğunun değiştirilmesine benzer şekilde APPEARANCE_LIGHT_CAPTION_BARS
simgesini kullanarak açık ve koyu temalar için altyazıdaki sistem öğelerinin görünümünü değiştirebilir.
Android 15'te, uygulamaların altyazı çubuğu içe eklemelerini daha ayrıntılı bir şekilde incelemesini sağlayan WindowInsets#getBoundingRects()
yöntemi de kullanıma sunuldu.
Uygulamalar, sistemin sistem öğelerini çizdiği alanları ve uygulamaların sistem öğeleriyle örtüşmeden özel içerik yerleştirebileceği kullanılmayan alanları ayırt edebilir.
API tarafından döndürülen Rect
nesnelerinin listesi, kaçınılması gereken sistem bölgelerini gösterir. Kalan alan (dikdörtgenler, altyazı çubuğu girintilerinden çıkarılarak hesaplanır), uygulamanın sistem öğeleriyle çakışmadan ve giriş alabilir şekilde çizim yapabileceği alandır.
Çoklu görev ve çoklu örnek desteği
Çoklu görev, masaüstü pencerelerinin temelinde yer alır. Uygulamanızın birden fazla örneğine izin vermek, kullanıcıların üretkenliğini büyük ölçüde artırabilir.
Android 15'te PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI hizmeti sunuluyor. Uygulamalar, uygulamanın birden fazla örnek olarak başlatılmasına izin vermek için sistem kullanıcı arayüzünün gösterilmesi gerektiğini belirtebilir.
Uygulama örneklerini sürükleme hareketleriyle yönetme
Çoklu pencere modunda kullanıcılar, bir görüntüleme öğesini uygulamanın penceresinden sürükleyerek yeni bir uygulama örneği başlatabilir. Kullanıcılar, öğeleri aynı uygulamanın örnekleri arasında da taşıyabilir.
Android 15, sürükle ve bırak davranışını özelleştirmek için iki işaret sunar:
DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG
: Bırakma işlemini görünen bir pencere işlemiyorsa, işlenmemiş bir sürüklemenin başlatılması için sisteme devredilmesi gerektiğini belirtir. Bu işareti kullanırken çağrı yapan kullanıcının,ClipData
özelliğine başlatılacak bir etkinliğe sabitIntentSender
içeren birItem
sağlaması (bkz.ClipData.Item.Builder#setIntentSender()
). Sistem, mevcut ekran boyutu veya pencere modu gibi faktörlere bağlı olarak niyeti başlatabilir ya da başlatmayabilir. Sistem amacı başlatmazsa normal sürükle ve bırak akışı aracılığıyla iptal edilir.DRAG_FLAG_GLOBAL_SAME_APPLICATION
: Bir sürükleme işleminin pencere sınırlarını aşabileceğini gösterir (aynı uygulamanın birden fazla örneği için).startDragAndDrop()
bu işaretle çağrıldığında, yalnızca aynı uygulamaya ait görünür pencereler sürükleme işlemine katılabilir ve sürüklenen içeriği alabilir.
Ek optimizasyonlar
Uygulama başlatma işlemlerini özelleştirin ve uygulamaları masaüstü pencere modundan tam ekrana geçirin.
Varsayılan boyutu ve konumu belirtin
Yeniden boyutlandırılabilir olsalar bile tüm uygulamaların kullanıcılara değer sunmak için büyük bir pencereye ihtiyacı yoktur.
Bir etkinlik başlatıldığında varsayılan boyutu ve konumu belirtmek için ActivityOptions#setLaunchBounds()
yöntemini kullanabilirsiniz.
Masaüstü alanından tam ekrana geçme
Uygulamalar Activity#requestFullScreenMode()
numaralı telefonu arayarak tam ekrana geçebilir.
Bu yöntem, uygulamayı doğrudan masaüstü penceresinde tam ekran olarak gösterir.