Pływający przycisk polecenia

Pływający przycisk polecenia (FAB) to przycisk o dużym znaczeniu, który umożliwia użytkownikowi wykonanie głównego działania w aplikacji. Promuje jedno, konkretne działanie, które jest najczęstszym sposobem postępowania użytkownika. Zazwyczaj znajduje się w prawym dolnym rogu ekranu.

Oto 3 przykłady użycia pływającego przycisku działania:

  • Utwórz nowy element: w aplikacji do robienia notatek pływający przycisk może służyć do szybkiego tworzenia nowej notatki.
  • Dodaj nowy kontakt: w aplikacji do czatowania pływający przycisk czynności może otwierać interfejs, który umożliwia użytkownikowi dodanie kogoś do rozmowy.
  • Wyśrodkuj lokalizację: w interfejsie mapy pływający przycisk działania może wyśrodkować mapę na bieżącej lokalizacji użytkownika.

W Material Design wyróżniamy 4 rodzaje przycisków FAB:

  • FAB: pływający przycisk polecenia o standardowym rozmiarze.
  • Mały pływający przycisk polecenia: mniejszy pływający przycisk polecenia.
  • Duży FAB: większy pływający przycisk polecenia.
  • Rozszerzony pływający przycisk polecenia: pływający przycisk polecenia, który zawiera nie tylko ikonę.
Przykład każdego z 4 komponentów pływającego przycisku polecenia.
Rysunek 1. Cztery typy pływających przycisków poleceń.

Powierzchnia interfejsu API

Do tworzenia przycisków czynności pływających zgodnych z Material Design możesz używać kilku funkcji kompozycyjnych, ale ich parametry nie różnią się zbytnio. Do najważniejszych parametrów, o których należy pamiętać, należą:

  • onClick: funkcja wywoływana, gdy użytkownik naciśnie przycisk.
  • containerColor: kolor przycisku.
  • contentColor: kolor ikony.

Pływający przycisk polecenia

Aby utworzyć ogólny pływający przycisk działania, użyj podstawowego komponentu FloatingActionButton. Poniższy przykład pokazuje podstawową implementację FAB:

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

Ta implementacja wygląda tak:

Standardowy pływający przycisk polecenia z zaokrąglonymi rogami, cieniem i ikoną „dodaj”.
Rysunek 2. Pływający przycisk polecenia.

Mały przycisk

Aby utworzyć mały pływający przycisk działania, użyj funkcji kompozycyjnej SmallFloatingActionButton. Poniższy przykład pokazuje, jak to zrobić, z dodatkiem kolorów niestandardowych.

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

Ta implementacja wygląda tak:

Implementacja elementu SmallFloatingActionButton, który zawiera ikonę „dodaj”.
Rysunek 3. Mały pływający przycisk polecenia.

Duży przycisk

Aby utworzyć duży pływający przycisk działania, użyj funkcji kompozycyjnej LargeFloatingActionButton. Ten komponent nie różni się znacząco od innych przykładów, z wyjątkiem tego, że tworzy większy przycisk.

Poniżej znajdziesz prostą implementację dużego przycisku FAB.

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

Ta implementacja wygląda tak:

Implementacja komponentu LargeFloatingActionButton, który zawiera ikonę „dodaj”.
Rysunek 4. Duży pływający przycisk polecenia.

Rozszerzony przycisk

Możesz tworzyć bardziej złożone pływające przyciski działania za pomocą funkcji kompozycyjnej ExtendedFloatingActionButton. Główna różnica między tym parametrem a parametrem FloatingActionButton polega na tym, że ma on dedykowane parametry icontext. Umożliwiają one tworzenie przycisków z bardziej złożoną treścią, które skalują się odpowiednio do zawartości.

Poniższy fragment kodu pokazuje, jak wdrożyć funkcję ExtendedFloatingActionButton, z przykładowymi wartościami przekazanymi dla parametrów icontext.

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

Ta implementacja wygląda tak:

Implementacja komponentu ExtendedFloatingActionButton, który wyświetla tekst „extended button” (rozszerzony przycisk) i ikonę edycji.
Rysunek 5. Pływający przycisk polecenia z tekstem i ikoną.

Dodatkowe materiały