Moments of growth

[Kotlin] 키보드 올라올 때 이벤트 처리 본문

Android [Kotlin] 💻🤍

[Kotlin] 키보드 올라올 때 이벤트 처리

뮤링이 2022. 7. 12. 20:10

ViewTreeObserver로 View 측정하기

ViewTreeObserver를 통해서 리스너를 달고, 전체 ViewTree의 변화가 생길 때 시점을 알 수 있다.

getRootView 메소드를 통해서 RootView의 높이와 최상단 부모 View의 높이를 서로 비교해서, 일정 크기(200dp)이상의 차이가 발생한다면 키보드가 올라왔다고 가정할 수 있다.

mRootViewHeight와 mRelativeWrapperHeight는 px 단위의 값이므로 200dp를 px 단위로 변환해서 비교해야한다. 

dpToPx 함수

var mRootViewHeight = binding.clBg.rootView.height
var mRelativeWrapperHeight = binding.clFirstApply.height

/* 키패드가 올라온 경우 */
if (mRootViewHeight - mRelativeWrapperHeight > dpToPx(200.0F)) {
	//do something
}

 

 

 

Reference)

 

Keyboard 가 보이는지 알수 있게 해주는 ViewTreeObserver

앱을 만들다 보면, 키보드(softKeyboard)가 화면에 올라가 있는지 아닌지 알아야 할 때 가 있는데요. 오늘은 어떻게 하면 화면을 측정해서, 키보드가 올라가는지 내려가 있는지 알 수 있는지에 관해

developer88.tistory.com

Comments