플로팅 작업 버튼

플로팅 작업 버튼 (FAB)은 사용자가 애플리케이션에서 기본 작업을 실행할 수 있는 강조 표시된 버튼입니다. 사용자가 취할 수 있는 가장 일반적인 경로인 단일 집중 작업을 홍보하며 일반적으로 화면 오른쪽 하단에 고정되어 있습니다.

FAB를 사용할 수 있는 세 가지 사용 사례를 고려해 보세요.

  • 새 항목 만들기: 메모 앱에서 FAB를 사용하여 새 메모를 빠르게 만들 수 있습니다.
  • 새 연락처 추가: 채팅 앱에서 FAB는 사용자가 다른 사람을 대화에 추가할 수 있는 인터페이스를 열 수 있습니다.
  • 위치 중앙에 맞추기: 지도 인터페이스에서 FAB를 사용하면 지도의 중심을 사용자의 현재 위치에 맞출 수 있습니다.

Material Design에는 다음과 같은 네 가지 유형의 FAB가 있습니다.

  • FAB: 일반 크기의 플로팅 작업 버튼입니다.
  • 작은 FAB: 더 작은 플로팅 작업 버튼입니다.
  • 대형 FAB: 더 큰 플로팅 작업 버튼입니다.
  • 확장 FAB: 아이콘 외에도 다른 항목이 포함된 플로팅 작업 버튼입니다.
4개의 플로팅 작업 버튼 구성요소의 예
그림 1. 4가지 플로팅 작업 버튼 유형

API 노출 영역

Material Design과 일치하는 플로팅 작업 버튼을 만드는 데 사용할 수 있는 컴포저블이 여러 개 있지만 매개변수는 크게 다르지 않습니다. 유의해야 할 주요 매개변수는 다음과 같습니다.

  • onClick: 사용자가 버튼을 누르면 호출되는 함수입니다.
  • containerColor: 버튼의 색상입니다.
  • contentColor: 아이콘의 색상입니다.

플로팅 작업 버튼

일반적인 플로팅 작업 버튼을 만들려면 기본 FloatingActionButton 컴포저블을 사용하세요. 다음 예는 FAB의 기본 구현을 보여줍니다.

@Composable
fun Example(onClick: () -> Unit) {
    FloatingActionButton(
        onClick = { onClick() },
    ) {
        Icon(Icons.Filled.Add, "Floating action button.")
    }
}

이 구현은 다음과 같이 표시됩니다.

모서리가 둥근 표준 플로팅 작업 버튼으로, 그림자와 '추가' 아이콘이 있습니다.
그림 2. 플로팅 작업 버튼

작은 버튼

작은 플로팅 작업 버튼을 만들려면 SmallFloatingActionButton 컴포저블을 사용하세요. 다음 예에서는 커스텀 색상을 추가하여 이를 실행하는 방법을 보여줍니다.

@Composable
fun SmallExample(onClick: () -> Unit) {
    SmallFloatingActionButton(
        onClick = { onClick() },
        containerColor = MaterialTheme.colorScheme.secondaryContainer,
        contentColor = MaterialTheme.colorScheme.secondary
    ) {
        Icon(Icons.Filled.Add, "Small floating action button.")
    }
}

이 구현은 다음과 같이 표시됩니다.

'추가' 아이콘이 포함된 SmallFloatingActionButton의 구현입니다.
그림 3. 작은 플로팅 작업 버튼

큰 버튼

큰 플로팅 작업 버튼을 만들려면 LargeFloatingActionButton 컴포저블을 사용합니다. 이 컴포저블은 더 큰 버튼이 생성된다는 점을 제외하고는 다른 예와 크게 다르지 않습니다.

다음은 큰 FAB를 간단하게 구현한 예입니다.

@Composable
fun LargeExample(onClick: () -> Unit) {
    LargeFloatingActionButton(
        onClick = { onClick() },
        shape = CircleShape,
    ) {
        Icon(Icons.Filled.Add, "Large floating action button")
    }
}

이 구현은 다음과 같이 표시됩니다.

'추가' 아이콘이 포함된 LargeFloatingActionButton의 구현입니다.
그림 4. 큰 플로팅 작업 버튼

확장된 버튼

ExtendedFloatingActionButton 컴포저블을 사용하여 더 복잡한 플로팅 작업 버튼을 만들 수 있습니다. FloatingActionButton와의 주요 차이점은 전용 icontext 매개변수가 있다는 점입니다. 이를 사용하면 콘텐츠에 적절하게 크기가 조절되는 더 복잡한 콘텐츠가 포함된 버튼을 만들 수 있습니다.

다음 스니펫은 icontext에 전달된 예시 값을 사용하여 ExtendedFloatingActionButton를 구현하는 방법을 보여줍니다.

@Composable
fun ExtendedExample(onClick: () -> Unit) {
    ExtendedFloatingActionButton(
        onClick = { onClick() },
        icon = { Icon(Icons.Filled.Edit, "Extended floating action button.") },
        text = { Text(text = "Extended FAB") },
    )
}

이 구현은 다음과 같이 표시됩니다.

'확장 버튼'이라는 텍스트와 수정 아이콘을 표시하는 ExtendedFloatingActionButton의 구현입니다.
그림 5. 텍스트와 아이콘이 모두 있는 플로팅 작업 버튼

추가 리소스