티스토리 뷰

반응형

만약 textinput과 일반적인 키보드를 사용하면 ondone 버튼을 만들어서 키보드를 내려가게 할 수 있습니다.

하지만 ios 숫자 키보드에서는 ondone 이 없기 때문에 키보드가 없어지지가 않습니다. 

 

그럴때 해야하는것이!!

FocusManager.instance.primaryFocus.unfocus();

 

1) 일단 클래스 위젯을 하나 생성합니다.

아래의 위젯은 일반 플러터 프로젝트에서도 그대로 사용하실 수 있습니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import 'package:flutter/material.dart';
 
class DismissKeyboard extends StatelessWidget {
  final Widget child;
  DismissKeyboard({this.child});
 
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        FocusScopeNode currentFocus = FocusScope.of(context);
        if (!currentFocus.hasPrimaryFocus &&
            currentFocus.focusedChild != null) {
          FocusManager.instance.primaryFocus.unfocus();
        }
      },
      child: child,
    );
  }
}
 
cs

 

2) 그리고 main.dart파일에 와서 MaterialApp을 DismissKeyboard로 감싸주면 됩니다. 

1
2
3
4
5
6
7
8
9
10
class MyApp extends StatelessWidget {
  const MyApp({
    Key key,
  }) : super(key: key);
 
  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
    return DismissKeyboard(
      child: MaterialApp(
cs

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함