-
EditText 자동 포커스 기능 막기Android 2020. 5. 25. 12:12
저번과 동일하게 대학생 앱 개발 동아리 YAPP 안드로이드 2팀에서 제작 중인
팀플레이 앱 제작 과정 중 생긴 자잘한 트러블 슈팅 해결 과정에 대해서 정리하려고 합니다.
화면 넘어갔을 때 바로 커서가 On이 되는 EditText 자동 포커스 문제 해결
일단 자동 포커스가 적용되는 화면을 보겠습니다.
화면은 스포츠 경기 신청 리스트를 보여주는 MatchList 화면에서 해당 리스트를 클릭했을 때,
디테일 뷰로 넘어가는 화면을 보여주는데요
아이템을 클릭해서 새로운 엑티비티로 이동하면 바로 EditText가 포커스 되면서 화면이 아래쪽으로 이동하는 것을 알 수 있습니다.
키보드가 바로 올라오고 아래에 있는 화면부터 봐야 하는 것이 당장 봐도 좋아 보이지 않죠.
이를 해결하는 과정은 생각보다 간단했습니다.
바로 View의 focusable 속성을 이용하는 것인데요. 공식 안드로이드 개발자 페이지에 의하면, 뷰가 초점을 맞출 수 있는지 여부를 조절한다고, 이 속성의 값을 true로 지정함으로써 초점을 가져올 수 있다고 나와있는데요.
기본적으로 EditText의 포커스가 디폴트에선 최상위라고 생각한다면, 화면의 가장 최상단 그룹인 Layout에 focusable 속성을 적용한다면 포커스가 Layout으로 갈 것이라고 생각했습니다.
바로 적용해보겠습니다.
디테일 화면에서 가장 최상위 View인 ConstraintLayout에 'focusable'과 'focusableInTouchMode'의 값을 True로 설정했습니다.
보시는 것처럼 화면을 들어가도 포커스가 바로 EditText로 이동하지 않습니다.
사소한 이슈였지만 클라이언트 개발자라면 당연히 사용성을 고려한 개발을 해야 한다고 생각합니다.
사용자와 가장 직접적으로 만나는 개발을 하므로 그만큼 사용성에 민감해야 한다고 생각합니다. 감사합니다.
'Android' 카테고리의 다른 글
Gson을 통해 API Response를 Enum으로 매핑하기 (0) 2020.09.25 [안드로이드 9.0 프로토콜 접속 변경사항] CLEARTEXT communication to XXXX not permitted by network security policy (0) 2020.07.24 SharedPreference 이야기 (0) 2020.06.19 프래그먼트와 백스택, 그리고 엑티비티 (0) 2020.05.20 MVP 패턴 기초 - Google Architecture을 활용한 설계 (0) 2020.02.23