안드로이드 키보드 화면 밀기

개발/안드로이드 2019. 7. 17. 20:24
반응형

EditText나 웹뷰에서 키보드(키패드)가 올라올때 화면이 작아진다든지 키보드에 가려져서 안보이는 현상이 발생 합니다.

이럴때 Layout 은 그대로 있고 화면을 밀어 올려 자연스럽게 입력 할 수 있는 상태로 바꿀 수 있는 방법에 대해 알아봅시다.

 

2가지 방법 중 하나의 방법으로 선택하여 사용하시면 됩니다.

(EditText 에도 속성 추가하여 할 수 있지만 이 방법은 잘 사용하지 않아 제외 합니다.)

 

1) AndroidManifest.xml 의 Activity 에 키보드 속성 추가하는 방법  

 windowSoftInputMode 에 "adjustPan"을 추가합니다.

<activity android:name=".MainActivity"
                  android:screenOrientation="portrait"
                  android:windowSoftInputMode="adjustResize|adjustPan">   
</activity>

 

2) MainActivity.java에서 키보드 속성 추가하는 방법

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);


잘 사용하는 설정값이 adjustPan 입니다. 그외 설정 값에 대해서는 아래에 설명하도록 하겠습니다.

필요에 따라 사용해보시면 됩니다.

 

stateUnspecified : 키보드 디폴트 설정 값

stateUnchanged : 키보드 마지막 상태 유지

stateHidden : 사용자 액티비티 선택 시 키보드 숨김

stateAlwaysHidden : 액티비티 메인 윈도우가 입력 포커스를 가질 때 키보드는 항상 숨김

stateVisible : 사용자가 액티비티 메인 윈도우 앞으로 갈 때 키보드 숨김

stateAlwayVisible : 사용자가 액티비티 선택할 때 키보드 보여줌

adjustUnspecified : 스크롤 할 수 있는 레이아웃 화면을 가지고 있다면 윈도우 크기 재 조정, 메인 윈도우 디폴트 값

adjustResize : 스크린 키보드 공간을 만들기 위해 메인 윈도우 크기를 재 조정

adjustPan : 키보드 공간을 만들기 위해 메인 윈도우의 크기가 재조정 되지 않음

 

반응형
admin