Класс KeyRepeatEvent
Класс KeyRepeatEvent шлёт
KeyboardListener,
когда платформа повторяет уже нажатую клавишу.
Первое нажатие остаётся
KeyDownEvent.
Синтаксис
event is KeyRepeatEvent
Пример
Давайте считать только повторы, не первое нажатие:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main()
{
runApp(const Keys());
}
class Keys extends StatefulWidget
{
const Keys({super.key});
@override
State<Keys> createState() => _KeysState();
}
class _KeysState extends State<Keys>
{
var n = 0;
@override
Widget build(BuildContext context)
{
return MaterialApp(
home: Scaffold(
body: KeyboardListener(
focusNode: FocusNode(),
autofocus: true,
onKeyEvent: (event) {
if (event is KeyRepeatEvent) {
setState(() { n = n + 1; });
}
},
child: Center(child: Text('$n')),
),
),
);
}
}
На экране 0. Пока клавишу держат, число растёт. Короткое нажатие его не меняет.
Смотрите также
-
класс
KeyDownEvent,
который приходит на первое нажатие -
виджет
KeyboardListener,
который отдаёт оба события -
класс
LogicalKeySet,
который описывает сочетание логических клавиш -
виджет
CallbackShortcuts,
который вызывает функцию по сочетанию