FocusManager와 FocusScope는 모두 포커스 트리를 구성하는 요소입니다. 하지만 각각의 역할과 사용 방법은 다릅니다.
FocusManager는 전체 포커스 트리를 관리하는데 사용되며, 현재 활성화된(포커스를 가진) 포커스 노드를 추적합니다. 애플리케이션의 많은 부분에서 포커스 상태를 추적하고 조작할 수 있습니다. 이것은 전역 객체로, 키보드 단축키와 같은 기능을 처리하는 데 사용됩니다.
FocusScope는 FocusNode의 그룹(서브트리)을 나타내며, 그룹 내에서 포커스를 이동시킬 수 있습니다. FocusScope는 포커스를 그룹 내에서 이동시키거나, 포커스를 가진 그룹 내의 위젯을 추적할 수 있습니다. FocusScope를 사용하면 특정 UI 구성 요소(예: 텍스트 필드, 버튼 등)가 포커스를 얻거나 잃을 때 더 세밀한 제어를 할 수 있습니다.
FocusManager는 전체 포커스 트리를 관리하고, FocusScope는 포커스 트리의 특정 부분(서브트리)를 관리합니다. 각 FocusScope는 FocusManager에 의해 관리되며, FocusScope 내의 포커스는 해당 FocusScope에 의해 관리됩니다.