blob: f4297c310c2c62ce1743577b5959e02c032da5d8 [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
/// Flutter code sample for [CallbackShortcuts].
void main() => runApp(const CallbackShortcutsApp());
class CallbackShortcutsApp extends StatelessWidget {
const CallbackShortcutsApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('CallbackShortcuts Sample')),
body: const Center(
child: CallbackShortcutsExample(),
),
),
);
}
}
class CallbackShortcutsExample extends StatefulWidget {
const CallbackShortcutsExample({super.key});
@override
State<CallbackShortcutsExample> createState() => _CallbackShortcutsExampleState();
}
class _CallbackShortcutsExampleState extends State<CallbackShortcutsExample> {
int count = 0;
@override
Widget build(BuildContext context) {
return CallbackShortcuts(
bindings: <ShortcutActivator, VoidCallback>{
const SingleActivator(LogicalKeyboardKey.arrowUp): () {
setState(() => count = count + 1);
},
const SingleActivator(LogicalKeyboardKey.arrowDown): () {
setState(() => count = count - 1);
},
},
child: Focus(
autofocus: true,
child: Column(
children: <Widget>[
const Text('Press the up arrow key to add to the counter'),
const Text('Press the down arrow key to subtract from the counter'),
Text('count: $count'),
],
),
),
);
}
}