플로팅 작업 버튼

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

FAB를 사용할 수 있는 다음 세 가지 사용 사례를 고려하세요.

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

Material Design에는 네 가지 유형의 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 매개변수가 있다는 것입니다. 이를 사용하면 콘텐츠에 맞게 크기가 조정되는 더 복잡한 콘텐츠로 버튼을 만들 수 있습니다.

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

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

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

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

추가 리소스