FocusManager를 사용하면 방향으로 포커스를 이동하거나 완전히 지울 수 있습니다.
직접 구성요소 타겟팅에는 FocusRequester를 사용합니다 (프로그래매틱 방식으로 포커스 요청 참고).
FocusManager를 사용한 방향 포커스 이동
상대 방향으로 프로그래매틱 방식으로 포커스를 이동하려면 다음을 실행하세요.
LocalFocusManager.current를 사용하여FocusManager인스턴스를 가져옵니다.FocusDirection값 (Next,Previous,Up,Down,Left,Right,Enter또는Exit)으로moveFocus()를 호출합니다.
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
포커스 지우기
현재 포커스를 보유한 요소에서 포커스를 삭제하려면(예: 사용자가 Esc 키를 누른 경우) clearFocus()를 호출합니다.
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
clearFocus() 함수는 선택적 force: Boolean = false 매개변수를 허용합니다.
force = false(기본값): 포커스 잠금을 따르며 활성 구성요소가 포커스를 캡처한 경우 포커스를 지우지 않습니다.force = true: 구성요소가 포커스를 캡처한 경우에도 무조건 포커스를 지웁니다.
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 포커스 타겟
- 포커스 순회 순서
- 프로그래매틱 방식으로 포커스 요청