이 영역을 누르면 첫 페이지로 이동
일상아빠 블로그의 첫 페이지로 이동

일상아빠

페이지 맨 위로 올라가기

일상아빠

이제 40대가 된 아빠의 소소한 블로그

키보드 show/hide 감지하기

  • 2018.11.25 13:38
  • 개발/Flutter

키보드 감지는 SatelessWidget에서는 불가능하고 StatefulWidget에 WidgetsBindingObserver를 추가해서 이벤트를 감지할 수 있습니다.


추가적으로 textfield에 focusNode를 추가하여 textfield에 focus가 있는지 여부도 같이 확인합니다.

class CommentContainerState extends State
    with WidgetsBindingObserver {

  final FocusNode focusNode = new FocusNode();

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
    focusNode.addListener(focus);
  }
 
  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    focusNode.removeListener(focus);
    focusNode?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return new Container(child: TextField(
                          focusNode: focusNode,
                          /* 필요없는 부분 삭제*/
                        ));
  }

  @override
  void didChangeMetrics() {
    if (!mounted) return;

    if (
        focusNode.hasFocus &&
        MediaQuery.of(context).viewInsets.bottom > 0.0 &&) { 
    /// 키보드가 내려가는 경우        
    }
    else {
     /// 키보드가 올라온 경우
     }
  }
}

didChangeMetrics 함수는 크기가 변경될 때 호출되는 함수입니다. 아마 화면이 회전되는 경우에도 이벤트가 발생할 수 있으니 몇가지 변수를 추가해서 정확하게 체크해야 합니다.


현재 화면에서 키보드만 내리고 싶을 때는 아래와 같이 새로운 focusNode를 생성하여 그쪽에 포커스를 넘겨주면 됩니다.

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


저작자표시비영리변경금지

'개발 > Flutter' 카테고리의 다른 글

캐러셀 리스트뷰 만들기  (0) 2018.12.21
배경이 투명한 페이지 만들기  (0) 2018.12.06
링크 모음  (0) 2018.11.25
키보드 show/hide 감지하기  (0) 2018.11.25
상태바, 내비게이션 바 보이기/감추기  (0) 2018.11.25
상태바 투명하게 만들기  (0) 2018.11.25
flutter

댓글

방문자 정보

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 배경이 투명한 페이지 만들기

    배경이 투명한 페이지 만들기

    2018.12.06
  • 링크 모음

    링크 모음

    2018.11.25
  • 상태바, 내비게이션 바 보이기/감추기

    상태바, 내비게이션 바 보이기/감추기

    2018.11.25
  • 상태바 투명하게 만들기

    상태바 투명하게 만들기

    2018.11.25
다른 글 더 둘러보기
  • 최신
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 다음

정보

일상아빠 블로그의 첫 페이지로 이동

일상아빠

  • 일상아빠의 첫 페이지로 이동

검색

카테고리

  • 분류 전체보기 (89)
    • 레잇뷰 (23)
    • 취미 (8)
      • 디비전2 (0)
    • 고양이 (27)
      • 퓨리 (25)
    • 일상 (19)
    • 정보 (6)
    • 개발 (6)
      • Flutter (6)

최근 글

  • 귀여운 퓨리

    귀여운 퓨리

    2020.08.07
  • 간만에 책상샷

    간만에 책상샷

    2020.08.07
  • 여름(?) 맞이 새 방석

    여름(?) 맞이 새 방석

    2020.06.05

인기 글

  • 꼭 여기서 씻어야 하니?

    꼭 여기서 씻어야 하니?

    2020.03.26
  • 구글 가족 그룹 추가 안되는 문제 해결기

    구글 가족 그룹 추가 안되는 문제 해결기

    2018.11.27
  • 퓨리도 같이 쓰고 싶어하는 맥북프로

    퓨리도 같이 쓰고 싶어하는 맥북프로

    2020.02.12

댓글

  • 블베병은 불치병이라 완쾌가 불가능하니⋯
  • 제가 지금 그 블베병을 앓고 있습니다.⋯
  • 저도 리디북스 자주 이용하는데, 주로⋯

정보

에그핀의 일상아빠

일상아빠

에그핀

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

공지사항

블로그 구독하기

  • 구독하기
  • RSS 피드

메뉴

  • 소개
  • 방명록

아카이브

  • 2020/08
  • 2020/06
  • 2020/03

방문자

  • 전체 방문자 168,028
  • 오늘 0
  • 어제 3
Powered by Tistory / Kakao. Copyright © 에그핀.

티스토리툴바