반응형
-
내 앱이 activity 가 landscape 모드일 때 IME 가 fullscreen 이 되는 현상이 있고, 다른 앱은 fullscreen 이 안 되는 것을 확인하였다.
control 가능한 영역인 것을 알 수 있다.
-
EditorInfo.IME_FLAG_NO_EXTRACT_UI 란 녀석이 있었다.
설명을 보면..
landscape mode 에서 input method 는 fullscreen 이 될 수 있다.
이는 해당 UI 들을 작게 보이게도 하며, 앱을 뒤로 감추기도 한다.
IME 가 event 를 모두 먹기 때문에, 보이는 UI 일부는 touch 에 반응하지 못한다. 이는 user 에게 혼란스럽게 만든다.
그래서 이 녀석 대신 FLAG_NO_FULLSCREEN 을 쓰는 것이 더 좋다.
IME_FLAG_NO_EXTRACT_UI 를 쓰는 것은 비추이며, 미래에 deprecate 될 수 있다.
이 녀석을 사용하면 full screen 을 막을 수 있지만, FLAG_NO_FULLSCREEN 이 더 권장되는 flag 이다.
-
EditorInfo.IME_FLAG_NO_FULLSCREEN 를 보면..
일단 API level 11 에 추가되었다.
IME 가 fullscreen mode 로 작동하지 않도록 한다.
기본적으로 IME 는 상황에 따라 full screen 이 될 수 있다.
예를 들면 landscape mode 에서 small screen 이라, keypad 가 올라오면 나머지 보여지는 영역이 의미없을 정도로 작은 경우이다.
만약 이 flag 가 설정되면 호환되는(규칙을 따르는) IME 는 full screen mode 로 동작하지 않고, 앱의 다른 UI 들도 보이게 한다.
앱은 IME 에 따라 flag 가 항상 guarantee 되지 않는다는 점을 명심해야 한다.
설명을 보면, 이 flag 를 적용했음에도 full screen 이 된다면, 이는 IME 가 이 flag 를 지원하지 않는다고 볼 수 있다.
끝
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] compose 의 stability (0) | 2023.08.15 |
---|---|
[android] BlockedNumbers (수신차단) 에 대해 알아보자. (0) | 2023.08.14 |
[android] android P 부터는 DNS 도 TLS 로 접근할 수 있다! (0) | 2023.01.08 |
[android] Safe Browsing 에 대해 알아보자. (0) | 2023.01.07 |
[android studio] Could not find lint-gradle-api.jar 해결 방법 (0) | 2023.01.06 |
댓글