1. 존재 여부 확인 Show context.getResources().getConfiguration().keyboard Configuration.KEYBOARD_NOKEYS : 없음 Configuration.KEYBOARD_QWERTY : qwerty keyboard 있음 Configuration.KEYBOARD_12KEY : 12key keyboard 있음 2. 사용 여부 확인 (h/w keyboard가 열려 있나?) context.getResources().getConfiguration().hardKeyboardHidden Configuration.HARDKEYBOARDHIDDEN_NO : 사용상태(열려 있음) Configuration.HARDKEYBOARDHIDDEN_YES : 사용하지 않는 상태(닫혀 있음) 키보드를 올렸을 때 안에 있는 레이아웃이 전체적으로 움직이거나 고정시키고 싶을 때가 있습니다. 이번 포스팅에서는 키보드의 영향에 따라 레이아웃을 조정하는 코드를 작성해보겠습니다. 우선 키보드 화면조정의 속성에는 다음과 같습니다.
위는 adjustPan을 적용한 것으로, 키보드가 올라갈 때 UI화면도 같이 올라가게 되는것을 확인할 수 있습니다. manifests.xml
위는 adjustResize로 키보드가 올라갈 때 액티비티는 고정되어있습니다. 하지만 너무 고정되어있는 탓에 입력할 수 있는 EditText가 보이지 않아 문제가 있습니다. manifest.xml
이 문제를 해결하기 위해서는 xml코드에서 레이아웃을 바꿔줘야합니다. 저는 최상위 레이아웃을 RelativeLayout로 만들어 준 뒤, EditText를 바닥에 붙여주니 다음과 같이 키보드 위에 EditText가 붙는 것을 확인할 수 있습니다. SampleCode RelativeLayout의 구성은 다은과 같습니다. activity_main.xml
EditText만 바닥에 붙여주기만 하면 키보드 위에 붙도록 구현할 수 있습니다. 발단안드로이드에서는 소프트키보드 상태를 변경하기 위해, 2가지 방법을 사용할 수 있을 것이다.
2번째 방법인 InputMethodManager를 이용한다면, 메서드의 파라미터로 아이디어코드 |