هر زمان که برنامه شما یک فایل رسانه ای پخش می کند، کاربران باید بتوانند با فشار دادن Spacebar روی صفحه کلید فیزیکی، پخش را متوقف کرده و از سر بگیرند.
به رویدادهای فشار کلید پاسخ دهید
برنامههای مبتنی بر Jetpack Compose یا views به فشردن کلیدهای صفحهکلید به روشهای مشابهی پاسخ میدهند: برنامه به رویدادهای فشار کلید گوش میدهد، رویدادها را فیلتر میکند و به فشارهای کلید مانند فشار کلید Spacebar پاسخ میدهد.
1. به رویدادهای صفحه کلید گوش دهید
نوشتن
با Jetpack Compose، از onPreviewKeyEvent
یا onKeyEvent
اصلاحکننده در طرحبندی که ضربه کلید را مدیریت میکند، استفاده کنید:
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
یا
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
بازدیدها
در یک فعالیت در برنامه خود، روش onKeyUp()
را لغو کنید:
کاتلین
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { ... }
جاوا
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { ... }
این روش هر بار که یک کلید فشار داده میشود فراخوانی میشود، بنابراین برای هر زدن کلید دقیقاً یک بار شلیک میشود.
2. فشارهای Spacebar را فیلتر کنید
در روش Compose onPreviewKeyEvent
و onKeyEvent
اصلاح کننده یا روش views onKeyUp()
، KeyEvent.KEYCODE_SPACE
را فیلتر کنید تا رویداد صحیح به مؤلفه رسانه شما ارسال شود:
نوشتن
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
یا
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
بازدیدها
کاتلین
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback() return true } return false
جاوا
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback(); return true; } return false;
نکات کلیدی
-
KEYCODE_SPACE
: کد کلید ثابت برای Spacebar .
نوشتن
-
onPreviewKeyEvent
: اصلاحکنندهای که یک مؤلفه را قادر میسازد تا رویدادهای کلیدی سختافزار را هنگامی که آن (یا یکی از فرزندانش) متمرکز است، رهگیری کند. -
onKeyEvent
: مشابهonPreviewKeyEvent
، اصلاحکنندهای که یک مؤلفه را قادر میسازد تا رویدادهای کلیدی سختافزاری را هنگامی که مؤلفه (یا یکی از فرزندان آن) متمرکز است، رهگیری کند.
بازدیدها
-
onKeyUp()
: هنگامی که یک کلید آزاد می شود و توسط یک view (مانندTextView
) در یک اکتیویتی کنترل نمی شود، کنترل کننده رویداد فراخوانی می شود.
نتایج
برنامه شما اکنون میتواند به فشار دادن کلید Spacebar برای توقف و ازسرگیری یک ویدیو یا رسانه دیگر پاسخ دهد.