반응형
프로젝트를 할때 EditText에 포커스가 가서 Ime가 올라오고 back버튼을 눌려 Ime가 닫힐 때 화면도 변경 되길 원해서 하는 방법을 검토해 보았습니다.
1. onBackPressed
처음에는 여기서 이벤트가 캐치 될줄 알았는데 전혀 되지 않았습니다. 아마 Ime가 떠 있을때는 back 이벤트가 아니라 다른 이벤트가 발생한듯 합니다.
2. 화면 크기
가장 구글링에서 많이 본 방법입니다. Ime가 올라오면 화면이 축소되기 때문에 그를 체크하여 Ime의 노출 여부를 체크하는 방법 입니다.
3. CustomEditText
CustomEditText를 만들고, 그 EditText 안에서 다음 onkeyPreIme를 override 합니다.
@SuppressLint("AppCompatCustomView")
class CustomEditText : EditText {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) :super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
override fun onKeyPreIme(keyCode: Int, event: KeyEvent?): Boolean {
return super.onKeyPreIme(keyCode, event)
}
}
위의 onKeyPreIme는 Ime가 내려가면 호출이 됩니다.
반응형
'2023년 이전 > Android' 카테고리의 다른 글
Android - 라이브러리를 활용한 인디케이터 ( dotsIndicator ) (0) | 2020.11.06 |
---|---|
[API] 다음 주소 API 활용하기 (6) | 2020.10.07 |
MpAndroidChart 사용 후기 (1) | 2020.05.30 |
java.lang.IllegalArgumentException: pointerIndex out of range (0) | 2020.05.30 |
android.os.properties 사용기 (1) | 2019.12.11 |