Büyük ekran optimizasyonu, harici klavye girişlerini işleme özelliğini içerir. Örneğin, videoların ve diğer medya içeriklerinin oynatılmasını duraklatmak veya devam ettirmek için Boşluk tuşuna basılmasına tepki verme. Bu, genellikle harici klavyelere bağlanan tabletler ve genellikle harici klavyelerle birlikte gelen ancak tablet modunda kullanılabilen Chromebook'lar için özellikle kullanışlıdır.
Medya, penceredeki tek öğe olduğunda (ör. tam ekran video oynatma) Jetpack Compose'da tuş basma etkinliklerine ekran düzeyinde yanıt verin.
En iyi uygulamalar
Uygulamanız bir medya dosyası oynattığında kullanıcılar fiziksel klavyedeki boşluk tuşuna basarak oynatmayı duraklatıp devam ettirebilmelidir.
Malzemeler
KEYCODE_SPACE: Boşluk tuşu için tuş kodu sabiti.onPreviewKeyEvent: Bir bileşenin (veya alt öğelerinden birinin) odaklandığında donanım tuşu etkinliklerini yakalamasını sağlayanModifier.onKeyEvent:onPreviewKeyEventgibi buModifierda bir bileşenin (veya alt öğelerinden birinin) odağı olduğunda donanım tuşu etkinliklerini yakalamasını sağlar.
Adımlar
Jetpack Compose'da klavye tuşlarına basıldığında yanıt vermek için uygulamanızın tuş basma etkinliklerini dinlemesi, etkinlikleri filtrelemesi ve seçilen tuş basmalarına (ör. boşluk tuşuna basma) yanıt vermesi gerekir.
1. Klavye etkinliklerini dinleme
Jetpack Compose ile, tuş vuruşunu yöneten bileşende onPreviewKeyEvent veya onKeyEvent değiştiricisinden yararlanabilirsiniz.
İki değiştirici arasındaki temel fark, değiştirici etkinliği kullanmazsa etkinliğin nereye gönderildiğidir:
onPreviewKeyEvent: Etkinliği ilk alt öğesine gönderir.onKeyEvent: Etkinliği, composable'ın üst öğesine gönderir.
2. Boşluk tuşuna basma işlemlerini filtreleme ve işleme
onPreviewKeyEvent veya onKeyEvent değiştirici lambda içinde, tuş bırakma (KeyEventType.KeyUp) işleminin boşluk çubuğuyla (Key.Spacebar) eşleştiği tuş etkinliklerini filtreleyin.
Kodunuz etkinliği işliyorsa ve etkinliğin daha fazla yayılmasını istemiyorsanız true değerini döndürün. Diğer bileşenlerin etkinliği işlemesine izin vermek için false değerini döndürün.
A seçeneği:
onPreviewKeyEventkullanarakColumn( modifier = Modifier.onPreviewKeyEvent { event -> if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) { // Handle spacebar keypress to pause/resume playback. true } else { false } } ) { // Content }
B seçeneği:
onKeyEventkullanarakColumn( modifier = Modifier.onKeyEvent { event -> if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) { // Handle spacebar keypress to pause/resume playback. true } else { false } } ) { // Content }
Sonuçlar
Uygulamanız artık boşluk tuşuna basıldığında videoyu veya diğer medyaları duraklatıp devam ettirebilir.
Ek kaynaklar
Klavye etkinlikleri ve bunları yönetme hakkında daha fazla bilgi edinmek için Klavye girişini işleme başlıklı makaleyi inceleyin.