본문 바로가기

Android/키보드

안드로이드/Android 키보드 Window soft input mode 설정 하기~!

안드로이드/Android 키보드 Window soft input mode 설정 하기~!




안드로이드 키보드 Window soft input mode 설정에 대한 설명 입니다.~!

해당 설정은 AndroidManifest.xml에 키보드가 실행 될 Activity에 설정해 주시면 됩니다.

ex)

 
 <activity android:name=".NoWeightActivity" android:windowSoftInputMode="adjustResize"/>


자 그럼 본격적으로 windowSoftInputMode 옵션에 대해 알아 보겠습니다.

  <예외>  : EditText가 키보드 올라오는 것에 영향을 받지 않으면 해당 옵션들이 적용 되지 않는다. 다시 말해 올라오는 키보드에 EditText가 영향을 받아야 아래의 옵션들이 적용 된다.

  1. 설정 X : adjustUnspecified  stateUnspecified 가 적용 된다.

  2. adjustPan : 키보드가 올라오면 EditText에 맞춰 화면 UI가 실종 됩니다. (위 아래로 잘림)

  3. adjustResize : 키보드가 올라와도 EditText와 UI가 화면에 보이도록 Activity를 resize 한다.

  3. adjustUnspecified : 시스템이 알아서 상황에 맞는 옵션을 설정 한다. 키보드 조정에 대한 디폴트 값이다.

 4. stateHidden : Acitivty 실행 시 키보드가 자동으로 올라오는 것을 방지 한다.

 5. stateAlwaysHidden : Acitivty 실행 시 항상 키보드가 자동으로 올라오는 것을 방지 한다. (액티비티 이동 포함)

 6. stateVisible : Acitivty 실행 시 키보드가 자동으로 올라 온다. (EditText에 포커스 맞춰짐)

 7. stateAlwaysVisible Acitivty 실행 시 항상 키보드가 자동으로 올라 온다. (EditText에 포커스 맞춰짐) (액티비티 이동 포함)

 8. stateUnchanged : 키보드를 마지막 설정 상태로 유지 한다.

 9. stateUnspecified : 키보드의 상태가 설정이 안된 상태이다. 시스템이 적절한 키보드를 상태를 설정해 주거나 테마에 따라 설정 해준다. 키보드 상태의 디폴트 값이다. 



[Android Developer 키보드 설정 확인 하기]




안드로이드 키보드 옵션은 키보드가 올라 올 때 EditText를 가려야 만 적용이 됩니다. 왜냐하면 키보드 등장 시 EditText를 덮어 버리면 사용자가 입력한 문자를 볼 수 없기 때문 입니다.




EditText가 키보드에 가려지지 않을 경우 : 

어떤 옵션을 선택해도 적용 되지 않는다.





EditText가 키보드에 가려질 경우 : 

설정한 옵션이 적용 된다.

             [기본화면]                                [adjustPan]                                  [adjustResize]




스크롤뷰가 적용된 화면에서 EditText가 키보드에 가려진 경우 (설정 adjustResize) 

ScrollView 사이즈 만큼 스크롤을 사용 할 수 있다.

              [기본화면]                          [키보드 올라 왔을 경우]         


[ScrollView 사이즈 만큼 스크롤을 사용 할 수 있다] 






스크롤뷰가 적용된 화면에서 EditText가 키보드에 가려진 경우 (설정 adjustPan:

ScrollView 사이즈 만큼 스크롤을 사용 할 수 없다.

[기본화면]                          [키보드 올라 왔을 경우] 

[ScrollView 사이즈 만큼 스크롤을 사용 할 수 없다.]