FocusNode
のaddListener
メソッドでフォーカスが変化した時の処理を記述できます。
dart
1import 'package:flutter/material.dart';
2
3void main() => runApp(MyApp());
4
5class MyApp extends StatelessWidget {
6 static const String _title = 'Focus';
7
8 @override
9 Widget build(BuildContext context) {
10 return MaterialApp(
11 title: _title,
12 home: Scaffold(
13 appBar: AppBar(title: const Text(_title)),
14 body: FocusWidget(),
15 ),
16 );
17 }
18}
19
20class FocusWidget extends StatefulWidget {
21 @override
22 _FocusWidgetState createState() => _FocusWidgetState();
23}
24
25class _FocusWidgetState extends State<FocusWidget> {
26 final _focusNode = FocusNode();
27
28 @override
29 void initState() {
30 super.initState();
31 _focusNode.addListener(() {
32 if (_focusNode.hasFocus) {
33 print('フォーカスした');
34 } else {
35 print('フォーカスが外れた');
36 }
37 });
38 }
39
40 @override
41 void dispose() {
42 _focusNode.dispose();
43 super.dispose();
44 }
45
46 @override
47 Widget build(BuildContext context) {
48 return Column(
49 children: [
50 TextField(focusNode: _focusNode),
51 TextField(),
52 ],
53 );
54 }
55}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/16 11:53 編集