[coding] 코딩 공부하자/[안드로이드]

[Android] 모바일 키보드와 View 상호 설정 (키보드 형, 화면 좀 가리지마!)

찰스_ 2020. 10. 27. 16:22
728x90
반응형

안녕하세요. 찰스입니다!

인도 출장 중에 호텔 격리되어 있을 때 안드로이드 APP 공부하면서 처리했던 기능들 복습노트 용도로 사용하기 위해 작성한 글입니다.

이왕이면 참고하시는 분들도 이해하시는데 도움이 되었으면 좋겠네요~


android:windowSoftInputMode 설정 실행화면

EditText 클릭 전 설정 : none, adjustUnspecified, adjustPan
설정 : adjustResize

위 화면과 같이 EditText 영역을 클릭하면 키보드가 하단에서 올라옵니다.

경우에 따라 화면을 가려야 할 때도 있고, 화면을 침범하지 않거나 포커스 화면으로 이동해야 할 경우들이 다양하게 있습니다. 

각자 필요한 경우에 맞춰 소프트 키보드의 설정하셔서 사용하시면 됩니다.

AndroidManifast.xml 내 activity 설정 코드

<activity android:windowSoftInputMode="adjustResize" ... >

(예시) AndroidManifast.xml - MainAcivity 내 설정

 <activity
     android:name=".MainActivity"
     android:windowSoftInputMode="adjustResize"
     ...
     >
     
     <intent-filter>
         <action android:name="android.intent.action.MAIN" />

         <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
     
 </activity>

 

android:windowSoftInputMode 설정 값, 설명 정리

특징 설명
"state"

키보드 상태 설정
"stateUnspecified" - 소프트 키보드의 동작에 대한 기본 설정.
- 키보드의 상태(숨김 또는 표시)를 지정하지 않음.
"stateUnchanged" - 액티비티가 앞으로 나올 때 소프트 키보드가 마지막으로 사용된 상태(숨김 또는 표시)를 유지.
"stateHidden" - 사용자가 다른 액티비티를 떠나고 해당 액티비티로 이동하는 방식으로 해당 액티비티를 선택하면 소프트 키보드 숨김.
"stateAlwaysHidden" - 액티비티 기본 창에 입력 포커스 있는 경우 소프트 키보드 항상 숨김.
"stateVisible" - 일반적으로 해당할 경우(사용자가 액티비티의 기본 창으로 이동하는 경우) 소프트 키보드가 표시.
"stateAlwaysVisible" - 사용자가 다른 액티비티를 떠나고 해당 액티비티로 이동하는 방식으로 해당 액티비티를 선택하면 소프트 키보드가 표시.
"adjust"

키보드 + 화면 공간확보 기능 설정
"adjustUnspecified" - 기본 창의 동작에 대한 기본 설정
- 키보드의 공간 확보를 위해 화면 크기 및 포커스 이동을 지정하지 않음.
- 스크롤할 수 있는 레이아웃 뷰가 있는 경우 adjustResize, adjustPan중 하나를 자동 선택.
"adjustResize" - 소프트 키보드를 위한 공간을 확보하도록 액티비티의 기본 창 크기를 항상 조정.
"adjustPan" - 소프트 키보드를 위한 공간을 확보하도록 액티비티의 기본 창 크기를 조정하지 않음.
- 키보드가 현재 포커스를 가리지 않고 사용자가 입력하는 것을 항상 볼 수 있도록 해당 창 콘텐츠로 자동 이동.

state와 ajust의 단일 값을 조합해서 설정 가능합니다. 구분 값은 세로 막대( | )를 사용합니다. 

<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >

 

마지막으로

위 값 설정 시 테마에 설정된 값을 재정의 합니다. (기본 설정인 stateUnspecified, adjustUnspecified 은 제외!)

해당 내용들은 android developers에 더욱 자세하게 설명되어 있습니다.

https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft


키보드가 올라와서 다 사용하고 이제 내려갔으면 좋겠는데, 이 형(?)이 말을 잘 안듣습니다. ㅋㅋㅋㅋ

[Android] 모바일 소프트 키보드 제어 내용 간략히 작성했습니다.

 

[android][Kotlin] 모바일 소프트 키보드 제어 - 내리기, 올리기 (키보드 형, 이제 사라져!)

안녕하세요. 찰스입니다! 안드로이드 키보드+화면 설정모바일 키보드와 View 상호 설정으로 키보드 나타나게 설정은 했는데, 이젠 또 안 없어져서 은근 거슬리더군요. 키보드 제어는 빌드가 필요

charlesstory.tistory.com

728x90
반응형