안드로이드에서 앱을 개발하는 중에 키보드가 표시될 때 레이아웃이 살짝 위로 움직이는 경우가 있습니다.
어떤 코드들은 키보드에 유연하게 반응하기 위해 레이아웃을 리사이징 시키기도 하지만 아무런 반응을 하고 싶지 않을때에는 당황스럽지요 ㅎ
인터넷에는 AndroidManifest.xml 파일의 해당 Activity 나 레이아웃의 옵션중 "windowSoftInputMode"의 값을 "adjustPan"으로 설정하면 해결된다는 답들이 많이 돌더군요.
아래는 그렇게 설정을 해도 문제가 해결되지 않을 경우에 대한 해답입니다^^
먼저, 위에서 언급한 "windowSoftInputMode"옵션의 값을 "adjsutPan"으로 설정하거나, 코드상에서 activity가 생성될 때 아래와 같이 해당 옵션을 설정합니다.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
그리고, 아래와 같이 레이아웃의 Gravity를 BOTTOM등으로 해 놓았을 경우 TOP으로 수정해서 위치나 크기를 다시 조절합니다.
WindowManager.LayoutParams wp = getWindow().getAttributes(); wp.gravity = Gravity.TOP; //Don't set BOTTOM !