[Flutter] 키보드활성화 이벤트 처리
Flutter에서 한줄의 코드로 소프트웨어 키보드가 올라와있는지 확인합니다
![[Flutter] 키보드활성화 이벤트 처리](/content/images/size/w1200/2025/04/0-2hj3gxylomketqsu.jpg)
TextField, TextFormField 등을 다루면서 소프트웨어 키보드가 올라와있는지 알아야 하는 경우가 있습니다.
https://pub.dev 에서 찾을 수 있는 Keyboard Visibility 패키지는 네이티브 코드를 이용해서 키보드가 열리거나 닫히는 이벤트를 제어할 수 있습니다.

이 패키지를 사용하는데 몇가지 문제가 있습니다.
- AndroidX를 지원하지 않습니다.
- AndroidX를 지원하기 위한 Pull Request를 개발자가 받아주지 않습니다.
- FlutterFragmentActivity 를 이용하는 경우 최초에 작동하지 않습니다. (백그라운드로 갔다가 돌아와야 작동합니다.)
AndroidX를 지원하기위해 pubspec.yaml에 아래와 같이 넣어주어야 합니다.keyboard_visibility:
git:
url: git@github.com:rafalbednarczuk/flutter_keyboard_visibility.git
branch: master
local_auth 패키지를 이용해 지문 인식을 하려면 FlutterFragmentActivity를 사용하게 되는데, 이 경우 3. 의 문제가 발생합니다. 해결방법은 네이티브 코드를 수정해야하는데 코드 한줄로, 위 패키지를 사용하지 않고 해결할 수 있습니다.
위젯의 build 메소드의 시작 부분에 아래 코드를 넣어주세요bool _keyboardVisible = MediaQuery.of(context).viewInsets.vertical > 0;
이제 _keyboardVisible을 이용해 키보드가 열려있는지, 닫혀있는지 알 수 있습니다.