Это карта ярлыков
Код: Выделить всё
shortcuts: {
LogicalKeySet(LogicalKeyboardKey.select): const ActivateIntent(),
LogicalKeySet(LogicalKeyboardKey.arrowUp): UpbuttonIntent(),
LogicalKeySet(LogicalKeyboardKey.arrowDown): DownbuttonIntent(),
}
Код: Выделить всё
actions: {
DownbuttonIntent: CallbackAction(
onInvoke: (intent) {
if(usernameFocus!.hasFocus){
FocusScope.of(context).requestFocus(passwordFocus);
setState(() {
});
}else if(passwordFocus!.hasFocus){
FocusScope.of(context).requestFocus(loginButtonFocus);
setState(() {
});
}else if(loginButtonFocus!.hasFocus){
FocusScope.of(context).requestFocus(usernameFocus);
setState(() {
});
}
},),
UpbuttonIntent: CallbackAction(
onInvoke: (intent) {
if(usernameFocus!.hasFocus){
FocusScope.of(context).requestFocus(loginButtonFocus);
setState(() {
});
}else if(passwordFocus!.hasFocus){
FocusScope.of(context).requestFocus(usernameFocus);
setState(() {
});
}else if(loginButtonFocus!.hasFocus){
FocusScope.of(context).requestFocus(passwordFocus);
setState(() {
});
}
},),
ActivateIntent: CallbackAction(
onInvoke: (intent) async{
if(usernameFocus!.hasFocus){
showCustomKeyboard(context, usernameController);
}else if(passwordFocus!.hasFocus){
showCustomKeyboard(context, passwordController);
}else if(loginButtonFocus!.hasFocus){
if(formKey.currentState!.validate()){
UserDataModel user = UserDataModel(username: usernameController.text, password: passwordController.text);
await context.read().login(user);
}
}
}),
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-flutter
Мобильная версия