포커스 타겟은 키보드 포커스가 이동할 수 있는 UI 요소입니다. 사용자는 Tab 키 또는 방향 (화살표) 키를 사용하여 키보드 포커스를 이동할 수 있습니다.
- Tab 또는 Shift+Tab: 포커스를 1차원 표시 순서로 앞뒤로 이동합니다.
- 방향 키: 포커스를 2차원적으로 이동합니다 (위, 아래, 왼쪽, 오른쪽).
상호작용이 가능한 UI 요소는 기본적으로 포커스 타겟입니다.
대화형 구성요소는 기본적으로 포커스 타겟입니다. 즉, 사용자가 탭하거나 클릭할 수 있는 경우 UI 요소는 포커스 타겟입니다.
예를 들어 Card 구성요소 3개를 생각해 보세요. 첫 번째 카드와 세 번째 카드는 상호작용이 가능하지만 (onClick 콜백 정의) 두 번째 카드는 순전히 정보 제공용인 경우 (클릭 처리 없음) 첫 번째 카드에서 Tab 키를 누르면 두 번째 카드를 건너뛰고 세 번째 카드로 바로 이동합니다.
Card(onClick = { /* First card action */ }) { Text("Card 1 (Interactive)") } Card { Text("Card 2 (Informational - not focusable)") } Card(onClick = { /* Third card action */ }) { Text("Card 3 (Interactive)") }
onClick 매개변수를 제공하여 두 번째 카드를 포커스 타겟으로 만들 수 있습니다.
Card(onClick = { /* Second card action */ }) { Text("Card 2 (Now interactive and focusable)") }
clickable 수정자는 맞춤 또는 표준 UI 요소를 포커스 타겟으로 전환하기도 합니다. 자세한 내용은 탭 및 누르기를 참고하세요.
Box( modifier = Modifier .clickable { /* Handle click */ } ) { Text("Custom interactive element") }
컴포저블을 클릭할 수 없는 포커스 타겟으로 설정
focusable 수정자는 클릭 시맨틱을 요구하지 않고 컴포저블을 포커스 타겟으로 만듭니다. 사용자는 키보드 포커스를 수정된 컴포저블로 이동할 수 있지만 (예: 접근성 도구로 콘텐츠를 검사하거나 표시 영역을 스크롤하기 위해) Enter 또는 스페이스 키를 눌러도 클릭 작업이 트리거되지 않습니다.
Box( modifier = Modifier .focusable() ) { Text("Non-clickable focus target") }
컴포저블을 포커스 불가능하게 만들기
경우에 따라 포인터 또는 클릭 이벤트를 사용 중지하지 않고 키보드 탐색에서 상호작용 요소를 제외해야 할 수 있습니다. focusProperties 수정자 내에서 canFocus = false를 설정하여 구성요소가 포커스를 받지 못하도록 할 수 있습니다.
var checked by remember { mutableStateOf(false) } Switch( checked = checked, onCheckedChange = { checked = it }, // Prevent component from being focused modifier = Modifier .focusProperties { canFocus = false } )
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 포커스 순회 순서
- 텍스트 입력란에 포커스
- 포커스 타겟 그룹화
- 포커스 상태 표시
- 포커스 탐색 테스트