일부 사용자 흐름에서는 애플리케이션이 포커스를 특정 구성요소로 명시적으로 이동해야 합니다. 예를 들어 사용자가 '검색' 버튼을 클릭하면 검색 입력 필드에 자동으로 포커스를 배치할 수 있습니다.
FocusRequester 사용
포커스를 명시적으로 요청하려면 다음을 실행하세요.
FocusRequester인스턴스를 만들고 기억합니다(val focusRequester = remember { FocusRequester() }).focusRequester수정자를 사용하여FocusRequester를 타겟 컴포저블에 연결합니다.- 이벤트 콜백 (예:
onClick) 또는 코루틴 범위 내에서requestFocus()를 호출합니다.
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) )
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) ) Button(onClick = { focusRequester.requestFocus() }) { Text("Request focus on TextField") }
초기 화면 포커스 설정
화면이 처음 표시될 때 특정 구성요소에 초기 포커스를 배치하려면 LaunchedEffect(Unit) 내에서 requestFocus()를 트리거하세요.
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
컨테이너 간에 탐색하거나 다른 화면에서 돌아올 때 focusRestorer()를 상위 컨테이너에 연결하여 마지막으로 포커스가 맞춰진 하위 요소로 포커스를 자동으로 반환할 수도 있습니다.
자세한 내용은 포커스 복원 가이드를 참고하세요.
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 포커스 타겟
- 포커스 타겟 그룹화
- 초점 복원
- 초점 이동 및 지우기