문제
Compose에서 TextField는 글자를 입력할 수 있는 요소입니다.
TextField를 터치하면 커서가 나타나며 하단에서 IME 키보드가 올라오고, 뒤로가기를 누르거나 특정 액션을 취하면 IME 키보드가 다시 숨겨집니다.
그런데 개발을 하던 중 아래와 같이 TextField에서 뒤로가기를 눌러 IME 키보드를 숨기고, 다시 동일한 TextField를 터치했을 때 IME 키보드가 다시 올라오지 않는 현상이 나타났습니다.
TextField에서 뒤로가기를 눌러 IME 키보드를 숨기고, 다른 TextField를 터치하면 IME 키보드가 다시 올라왔지만, 동일한 TextField에 한에서만 IME 키보드가 다시 올라오지 않았습니다.
해당 문제는 기본 TextField뿐만 아니라 BasicTextField, OutlinedTextField 등 모든 TextField에서 발생했습니다.
기기의 문제일 수도 있다고 생각해 다른 기기에서도 테스트를 해보고 여러 애뮬레이터에서도 테스트를 해보았지만, 동일한 문제가 발생했습니다.
문제 해결에 하루를 꼬박 투자했고, 결국 원인을 찾았습니다.
해결방법
이런 문제가 발생한 원인은 너무 최신의 material3 라이브러리를 사용한 것이었습니다.
안드로이드 스튜디오에는 gradle파일에서 의존하고있는 라이브러리의 최신 버전이 있으면 아래와 같이 시각적으로 알려주는 기능이 있습니다.

이때 프로젝트에 영향을 주지 않을거라고 생각하면 무심코 새로운 버전을 사용하는 경우가 있습니다.
그러나 항상 최신 버전이 최선인 것은 아닙니다. 나온지 얼마 되지 않은 버전에는 버그나 여러 이슈가 존재할 수 있습니다. 제 앱의 TextField에서 발생한 오류도 이런 버그로 보여졌습니다.
저도 몇 주 전 matarial3 라이브러리를 최신 버전으로 업그레이드했고, 그 이후로 문제가 발생한 것이였습니다.
문제점을 발견하고 다시 이전에 사용하던 버전으로 되돌리니 아래와 같이 정상 작동하는 것을 확인했습니다.
beta01 -> alpha07
라이브러리 버전을 변경할 때는 항상 버전별 이슈나 버그를 확인하고 변경하도록 합시다!
'Android' 카테고리의 다른 글
문제
Compose에서 TextField는 글자를 입력할 수 있는 요소입니다.
TextField를 터치하면 커서가 나타나며 하단에서 IME 키보드가 올라오고, 뒤로가기를 누르거나 특정 액션을 취하면 IME 키보드가 다시 숨겨집니다.
그런데 개발을 하던 중 아래와 같이 TextField에서 뒤로가기를 눌러 IME 키보드를 숨기고, 다시 동일한 TextField를 터치했을 때 IME 키보드가 다시 올라오지 않는 현상이 나타났습니다.
TextField에서 뒤로가기를 눌러 IME 키보드를 숨기고, 다른 TextField를 터치하면 IME 키보드가 다시 올라왔지만, 동일한 TextField에 한에서만 IME 키보드가 다시 올라오지 않았습니다.
해당 문제는 기본 TextField뿐만 아니라 BasicTextField, OutlinedTextField 등 모든 TextField에서 발생했습니다.
기기의 문제일 수도 있다고 생각해 다른 기기에서도 테스트를 해보고 여러 애뮬레이터에서도 테스트를 해보았지만, 동일한 문제가 발생했습니다.
문제 해결에 하루를 꼬박 투자했고, 결국 원인을 찾았습니다.
해결방법
이런 문제가 발생한 원인은 너무 최신의 material3 라이브러리를 사용한 것이었습니다.
안드로이드 스튜디오에는 gradle파일에서 의존하고있는 라이브러리의 최신 버전이 있으면 아래와 같이 시각적으로 알려주는 기능이 있습니다.

이때 프로젝트에 영향을 주지 않을거라고 생각하면 무심코 새로운 버전을 사용하는 경우가 있습니다.
그러나 항상 최신 버전이 최선인 것은 아닙니다. 나온지 얼마 되지 않은 버전에는 버그나 여러 이슈가 존재할 수 있습니다. 제 앱의 TextField에서 발생한 오류도 이런 버그로 보여졌습니다.
저도 몇 주 전 matarial3 라이브러리를 최신 버전으로 업그레이드했고, 그 이후로 문제가 발생한 것이였습니다.
문제점을 발견하고 다시 이전에 사용하던 버전으로 되돌리니 아래와 같이 정상 작동하는 것을 확인했습니다.
beta01 -> alpha07
라이브러리 버전을 변경할 때는 항상 버전별 이슈나 버그를 확인하고 변경하도록 합시다!