반응형

Activity 생성 시, EditText에 포커스가 가는 문제




의도치 않은 동작

Toolbar메뉴를 누르면

EditText 위젯이 포함된 Activity를 하나 생성해서 띄우도록 구현했는데

Activity가 생성 -> EditText에 포커스 -> 키패드 팝업

의 순서로 의도치 않은 동작이 수행되는 군요.



그렇다고 입력을 받아야 하는 EditTxt가 포커스를 갖지 못하게 할수도 없구요.

Activity 생성시 다른 위젯에 포커스를 강제로 가게 하는 것도 다른 문제가 있습니다.


어쩌면 꼼수

다음과 같이 처리하면 이러한 문제는 해결(?) 됩니다.


결국은 다른 위젯에 포커스를 가게 하는 방식입니다만,

화면상에 보이는 다른 위젯에 포커스를 주는게 아니라, 전체 화면을 감싸는 LinearLayout에 다음 속성을 통해 포커스를 주면 된다는 거죠


테스트를 해보니 android:focusableInTouchMode="true" 설정만으로도 현상이 사라지기는 하는데...

LinearLayout의 focusable 기본값이 true라는 얘긴가?

안전하게 둘다 쓰는것으로 하겠습니다.



*Update - 2019.04

- 테스트 해보지 않음

<activity android:windowSoftInputMode="stateHidden ">

stateHidden : activity 실행시 키보드가 자동으로 올라오는 것을 방지


default: adjustUnspecified | stateUnspecified

adjustUnspecified  : system이 적절한 키보드 상태를 설정, 혹은 테마에 따라 설정

stateUnspecified : system이 알아서 상황에 맞게 설정

반응형

'안드로이드' 카테고리의 다른 글

Android resource compilation failed  (3) 2019.02.23
Activity간 Object 공유- Parcelable  (0) 2019.02.21
Android Studio 단축키  (0) 2018.12.21
Android Studio 화면구성  (0) 2018.05.13
자주쓰는 코드  (0) 2018.05.13

+ Recent posts