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가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 포커스 타겟
- 포커스 순회 순서
- 프로그래매틱 방식으로 포커스 요청