Android 10 (API düzeyi 29) sürümünden itibaren Android sistemi, tamamen harekete dayalı gezinmeyi destekler. Uygulama geliştiricilerin, uygulamalarının bu özellikle uyumlu olmasını sağlamak için yapması gereken iki şey vardır:
- Uygulama içeriğini ekranın kenarlarından kenarlarına kadar uzatın.
- Çakışan uygulama hareketlerini işleme
Ayrıca Android 13 (API düzeyi 33), telefonlar, büyük ekranlar ve katlanabilir cihazlar gibi Android cihazlar için tahmini geri hareketi kullanıma sunuyor. Bu özellik, çok yıllık bir sürümün parçasıdır. Uygulama geliştiriciler, uygulamalarının tahmini geri hareketini desteklemesini sağlamak için gerekli adımları atabilir.
Uygulama içeriğini ekranın kenarlarından kenarlarına kadar gösterme
Yüzen gezinme çubuğu tarafından sağlanan ek ekran alanından yararlanmak için uygulamanızda belirli değişiklikleri yapılandırmanız gerekir.
Ayrıntılar için Uygulamanızda içeriği kenarlara kadar görüntüleme başlıklı makaleyi inceleyin.
Çakışan uygulama hareketlerini işleme
Hareketle gezinme modeli, daha önce uygulama geliştiricileri tarafından kullanılan hareketlerle çakışabilir. Sonuç olarak, uygulamanızın kullanıcı arayüzünde düzenlemeler yapmanız gerekebilir.
Geri hareketleriyle çakışıyor
Geri için yeni sistem hareketi, ekranın sol veya sağ kenarından içeriye doğru kaydırmaktır. Bu durum, bu alanlarda uygulama gezinme öğelerini etkileyebilir. Ekranın sol ve sağ kenarlarındaki öğelerin işlevselliğini korumak için sisteme hangi bölgelerin dokunma girişi alması gerektiğini belirterek geri hareketini seçerek devre dışı bırakın. Bunu, Android 10'da kullanıma sunulan View.setSystemGestureExclusionRects()
API'sine bir List<Rect>
göndererek yapabilirsiniz. Bu yöntem, androidx.core:core:1.1.0-dev01
itibarıyla ViewCompat
'te de kullanılabilir.
Örnek:
Kotlin
var exclusionRects = listOf(rect1, rect2, rect3) fun onLayout( changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) } fun onDraw(canvas: Canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) }
Java
List<Rect> exclusionRects; public void onLayout( boolean changedCanvas, int left, int top, int right, int bottom) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); } public void onDraw(Canvas canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); }
Ana ekran veya hızlı geçiş hareketleriyle çakışıyor
Ana ekran ve hızlı geçiş için yeni sistem hareketleri, ekranın alt kısmında, daha önce gezinme çubuğunun bulunduğu alanda kaydırma hareketlerini içerir. Uygulamalar, geri hareketinde olduğu gibi bu hareketleri devre dışı bırakamaz.
Android 10, bu sorunu azaltmak için uygulamaları dokunma algılama eşikleri hakkında bilgilendiren WindowInsets.getMandatorySystemGestureInsets()
API'sini kullanıma sunar.
Oyunlar ve View dışındaki diğer uygulamalar
Görüntü hiyerarşisi olmayan oyunlar ve diğer uygulamalarda kullanıcının genellikle sistem hareketi alanlarının yakınında kaydırması gerekir. Bu gibi durumlarda oyunlar, sistem hareketleri için ayrılan alanlarla örtüşen alanları hariç tutmak üzere Window.setSystemGestureExclusionRects()
kullanabilir. Oyunlar, bu alanları yalnızca gerektiğinde (ör. oyun sırasında) hariç tutmalıdır.
Bir oyunda kullanıcının ana ekran hareketi alanının yakınında kaydırması gerekiyorsa uygulama, tam ekran modunda düzenlenmeyi isteyebilir. Bu, kullanıcı oyunla etkileşimde bulunurken sistem hareketlerini devre dışı bırakır ancak kullanıcının ekranın alt kısmından kaydırarak sistem hareketlerini yeniden etkinleştirmesine olanak tanır.
Uygulamanızı, tahmini geri hareketini destekleyecek şekilde güncelleyin
Android 13 (API düzeyi 33), telefonlar, büyük ekranlar ve katlanabilir cihazlar gibi Android cihazlar için tahmini geri hareketi kullanıma sunuyor. Tahmini geri hareketi, çok yıllık bir sürümün parçasıdır. Bu özellik tam olarak uygulandığında, kullanıcıların geri hareketini tamamen tamamlamadan önce hedefi veya geri hareketinin diğer sonuçlarını önizlemesine olanak tanır. Böylece kullanıcılar devam edip etmeyeceklerine veya mevcut görünümde kalıp kalmayacakları konusunda karar verebilir.
Ayrıntılar için Tahmini geri hareketi için destek ekleme başlıklı makaleyi inceleyin.
Ek kaynaklar
Hareketle gezinme hakkında daha fazla bilgi edinmek için aşağıdakilere bakın: