How to Hide keyboard from fragments

2023. 10. 8. 03:30·Dev experience/Android
728x90
반응형

이번에 소개할 내용은 프래그먼트들에게서 키보드(SoftInput 또는 keypad)를 내리는 방법이다.

(누군가 더 좋은 방법을 소개시켜준다면 기꺼이 교체할 생각이 있다.)

 

시작해보자.

 

일단 이런 동작이 필요하게 된 배경은 이러하다.

 

흔히 사용하는 BottomNavigationView의 메뉴 아이템을 선택해 다른 프래그먼트를 보여줘야 할 때,

이전 프래그먼트에서 입력하던 사항이 있다면 키보드를 내리면서 프래그먼트가 전환되어야 한다.

 

안드로이드에 익숙한 개발자라면 키보드 내리는 동작은 익숙해져 있을 것이다.

 

나에게 문제는 이 동작을 어디서, 얼마나 실행하느냐가 문제였다.

 

그래서 프래그먼트가 교체되는 ItemSelectedListener에서 실행해주었다.

 

여기서 기존에 모든 프래그먼트를 hide시킨 뒤, when을 통해 선택한 메뉴의 프래그먼트를 보여주게 코드를 작성해두었었다.

 

모든 프래그먼트를 hide시킬 때, 각 프래그먼트마다 clearFocus를 해주고 hideSoftInputFromWindow를 해주었다.

 

이렇다 보니 hide, clearFocus, hideSoftInputFromWindow를 다른 함수 하나로 묶어버렸다.

 

바로 아래에 코드를 첨부해보도록 하겠다.

https://gist.github.com/BonusTrack02/268ab1a88fa9cd57aa47d8cc28955500

 

hideSoftInputAndFragments in MainActivity.kt

hideSoftInputAndFragments in MainActivity.kt. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

여기서 for문의 인덱스는 내가 사용한 메뉴가 총 3개여서 3까지 반복했지만 5까지 반복하는 상황도 있으리라 생각한다.

 

추가로, 나의 경우엔 프래그먼트를 destroy시키지 않는데 만약 BottomNavigationView에서

메뉴 선택 시마다 이전 프래그먼트를 지워버린다면 함수를 수정해야할 것이다.

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Dev experience > Android' 카테고리의 다른 글

Android DateRangePicker Custom Settings - 2. Current Date  (0) 2023.10.24
Android DateRangePicker Custom Settings - 1. Modal  (0) 2023.10.22
Codelab으로 Room 알아보기 - 3. Create the DAO  (0) 2023.09.23
Android BottomSheet Material Theme 적용하기  (0) 2023.09.15
Android BottomNavigationView Uncheck All Items  (0) 2023.09.13
'Dev experience/Android' 카테고리의 다른 글
  • Android DateRangePicker Custom Settings - 2. Current Date
  • Android DateRangePicker Custom Settings - 1. Modal
  • Codelab으로 Room 알아보기 - 3. Create the DAO
  • Android BottomSheet Material Theme 적용하기
BonusTrack02.dev
BonusTrack02.dev
공부, 일상
  • BonusTrack02.dev
    BonusTrack02.dev
    BonusTrack02.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (237)
      • Dev experience (85)
        • Android (84)
        • Kotlin (1)
      • Study (62)
        • Kotlin (26)
        • Swift (17)
        • Java (19)
      • 프로그래머스 (68)
      • 주저리주저리 (22)
        • 카페 (5)
        • 음식점 (4)
        • 컨퍼런스 (1)
        • 팝업스토어 (4)
        • 전시회 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    MVVM
    안드로이드
    코루틴
    jetpack
    programmers
    aac
    스위프트
    room
    coroutines
    PCCE
    Material
    SWIFT
    프로그래머스
    getNumericValue
    자바
    Kotlin
    databinding
    배열
    오블완
    viewModelScope
    ViewModel
    코틀린
    android
    Java
    ios
    티스토리챌린지
    Observer
    LiveData
    CodeLab
    daterangepicker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BonusTrack02.dev
How to Hide keyboard from fragments
상단으로

티스토리툴바