본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터에서 TextField/화면 어디든 클릭 한 후 소프트 입력 키보드를 숨기는 방법은 무엇인가요?, How to hide soft input keyboard on flutter after clicking outside TextField/anywhere on screen?

by 베타코드 2023. 5. 12.
반응형

질문


현재, 위젯의 onTap 메소드를 사용하여 소프트 키보드를 숨기는 방법을 알고 있습니다.

FocusScope.of(context).requestFocus(new FocusNode());

하지만 텍스트 필드 외부를 클릭하거나 화면 어디에서든 소프트 키보드를 숨기고 싶습니다. flutter에서 이를 수행하는 방법이 있나요?


답변


잘못된 방식으로 하고 있습니다. 소프트 키보드를 숨기는 간단한 방법을 시도해보세요. 전체 화면을 GestureDetector 메서드로 래핑하고 onTap 메서드에 이 코드를 작성하면 됩니다.

FocusScope.of(context).requestFocus(new FocusNode());

전체 예제는 다음과 같습니다:

new Scaffold(
   body: new GestureDetector(
      onTap: () {
         FocusScope.of(context).requestFocus(new FocusNode());
      },
      child: new Container(
         //여기에 코드를 작성하세요
      ),
   ),
)

업데이트 (2021년 5월)

return GestureDetector(
   onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
   child: Scaffold(
      appBar: AppBar(
         title: Text('Login'),
      ),
      body: Body(),
   ),
);

이렇게 하면 AppBar를 터치해도 작동합니다. newDart 2에서 선택 사항입니다. FocusManager.instance.primaryFocus는 위젯 트리에서 현재 주요 포커스를 가진 노드를 반환합니다.

널 안전성을 갖춘 Dart에서 조건부 액세스

반응형

댓글