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 çubuğuna basıldığında tepki verme gibi. Bu özellik, özellikle harici klavyelere bağlanan tabletler ve genellikle harici klavyelerle birlikte gelen ancak tablet modunda da kullanılabilen Chromebook'lar için faydalıdır.
Pencerenin tek öğesi medya olduğunda (ör. tam ekran video oynatma), Jetpack Compose'da tuşa 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 çubuğuna basarak oynatmayı duraklatıp devam ettirebilmelidir.
Malzemeler
KEYCODE_SPACE: Boşluk çubuğ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:onPreviewKeyEvent'e benzer şekilde buModifier, bir bileşenin (veya alt öğelerinden birinin) odaklandığında donanım tuşu etkinliklerini engellemesini sağlar.
Adımlar
Jetpack Compose'da klavye tuşlarına basma işlemlerine yanıt vermek için uygulamanız tuşlara basma etkinliklerini dinlemeli, etkinlikleri filtrelemeli ve seçilen tuşlara basma işlemlerine (ör. boşluk çubuğuna basma) yanıt vermelidir.
1. Klavye etkinliklerini dinleme
Jetpack Compose ile tuş vuruşunu yöneten bileşende onPreviewKeyEvent veya onKeyEvent değiştiricisini kullanabilirsiniz.
İki değiştirici arasındaki temel fark, değiştirici tarafından kullanılmayan etkinliklerin nereye gönderildiğidir:
onPreviewKeyEvent: Etkinliği ilk alt öğesine gönderir.onKeyEvent: Etkinliği composable'ın üst öğesine gönderir.
2. Boşluk çubuğu tuşuna basma işlemlerini filtreleme ve işleme
onPreviewKeyEvent veya onKeyEvent değiştirici lambda'sının içinde, tuş bırakma (KeyEventType.KeyUp) işleminin boşluk çubuğuyla (Key.Spacebar) eşleştiği önemli etkinlikleri 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:
onPreviewKeyEventsimgesini kullanmaColumn( 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:
onKeyEventkullanmaColumn( 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 çubuğ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.