개발/Flutter
플러터 (Flutter) : Dismiss the keyboard when tap outwide the textfield (ios/android) 화면터치시 키보드 내려가게 하기
Byunpa24
2021. 8. 18. 14:41
반응형
만약 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 |
반응형