일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 내 맘대로 정리한 안드로이드
- 쿼터뷰
- 안드로이드
- 목서버
- submodule sourcetree
- Unity
- java
- 안드로이이드 submodule
- 유니티
- 카페오냥
- GIT
- 개발
- Android
- 앱
- 티스토리
- 안드로이드개발
- 타이쿤
- 2d게임
- gitlab submodule
- firebase
- 코틀린
- 서브모듈 sourcetree
- Android Studio
- 게임개발
- github submodule
- 서브모듈 pull
- 앱개발
- DataBinding
- github
- Kotlin
- Today
- Total
Uing? Uing!!
[안드로이드 팁] windowSoftInputMode : 키보드가 올라와도 화면이 가려지지 않았으면 좋겠어요! 본문
소프트키와 화면 변화
EditText는 정말 빈번하게 사용되는 뷰이다.
이 EditText를 터치하면 키보드(소프트키)가 화면 하단에서 나타난다.
그런데 가끔, 이 소프트키가 화면을 가리는 경우가 있다.
아래와 같은 상황이 그 예시이다.
(가장 처음으로 만들었던 '지나가리라'라는 어플리케이션의 화면이다.)
가장 왼 쪽의 레이아웃에서 키보드가 나오더라도 맨 오른쪽처럼 버튼을 유지하고 싶은데,
가운데의 스크린샷처럼 화면을 반쯤 가리면서 필요한 뷰들이 숨어 버린다.
앗 재난문자가
windowSoftInputMode
windowSoftInputMode를 이용하면 키보드가 나타나고 사라졌을 때의 화면 변화 방식을 지정해 줄 수 있다.
가장 대표적인 설정값은 "adjustResize"이다.
이 값은 소프트키가 올라왔을 때 남은 화면 사이즈에 따라 레이아웃을 적절하게 변형시켜 준다.
AndroidManifest.xml 파일의 수정하고자 하는 activity 태그에 접근한 후,
아래와 같이 android:windowSoftInputMode="adjustResize"를 설정해 주면 된다.
<activity
android:name=".EditActivity"
android:configChanges="keyboardHidden|orientation"
android:windowSoftInputMode="adjustResize"
android:screenOrientation="portrait" />
그 외의 설정값
windowSoftInputMode에는 adjustResize 외에도 여러 상태값들이 존재한다.
구체적으로는 stateUnspecified, stateUnchanged, stateHidden, stateAlwaysHidden, stateVisible, stateAlwaysVisible, adjustUnspecified, adjustResize, adjustPan의 설정값들을 활용할 수 있다.
각각에 대한 자세한 내용은 아래 공식 문서에서 확인할 수 있다!
이 글을 '안드로이드 삽질일기'에 쓸지 '내 맘대로 안드로이드'에 쓸지 잠시 고민했다.
실제로 적용을 하기는 했지만, windowSoftInputMode에 대해 정리하기 위해 적용한 것이어서 후자로 결정했다.