Activity의 메인 window 가 *소프트키보드가 표시된 윈도우를 어떻게 표시할 것인지에 대한 설정
*소프트키보드 : PC 같은 물리키보드가 아닌 소프트웨어 표시 가상키보드
두 가지 효과
1. activity에 포커스될 때 소프트 키보드가 안보이거나 보이게 한다.
2. 소프트키보드가 윈도우의 부분을 덮을 때 activity의 메인윈도우가 소프트키보드를 보여주기 위해 작아지거나, 현재 포커스를 보여주게 한다.
반드시 하나의 값을 입력하거나 state 값 1개와 adjust 값 1개를 조합해서 사용해야한다.(vertical bar "|"로 분리)
예시
<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
사용할 수 있는 값 목록
- state
"stateUnspecified" 소프트키보드의 보임여부를 지정하지 않는다. 시스템이 적절한 상태나 테마에 맞는 설정으로 표현한다.(기본 설정값)
"stateUnchanged" activity가 활성화될 때 소프트키보드의 이전 상태를 유지한다.
"stateHidden" 사용자가 activity를 선택했을 때 소프트키보드를 숨긴다.
"stateAlwaysHidden" activity의 메인윈도우가 input에 포커스될 때 소프트키보드는 항상 안보인다.
"stateVisible" 다른 activity로 이동할때가 아니라 activity를 사용자가 선택했을때 키보드는 보여진다.
"stateAlwaysVisible" input에 포커스되면 소프트키보드를 항상 보여준다.
- adjust
"adjustUnspecified" 어떻게 처리할지 지정하지 않음. 윈도우가 내용을 스크롤할 수 있는 레이아웃뷰를 가지고 있는지에 따라서 시스템이 자동으로 처리한다. 이러한 뷰가 있는 경우, 스크롤해서 윈도우의 모든 콘텐츠를 더 작은 영역 내에서 볼 수 있게 할 수 있다는 가정하에 윈도우는 크기가 조정된다. (기본 설정값)
"adjustResize" activity의 main window 의 크기가 항상 변경된다.(소프트키보드가 화면에 표시되는 영역만큼)
"adjustPan" activity의 main window 의 크기가 변경되지 않는다.(소프트키보드가 화면에 표시되는 만큼). 대신, window의 내용이 가려지지 않고 유저가 입력하는 것을 볼 수 있도록 pan? 된다. 크기가 변경되지 않기 때문에 가려진 영역을 보기 위해서 소프트키보드를 닫아야 할 수도 있으므로 adjustResize 보다 좋지 않다.