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 on jedno, konkretne działanie, które jest najczęstszym sposobem postępowania użytkownika. Zwykle znajduje się w prawym dolnym rogu ekranu.

Oto 3 przypadki użycia, w których możesz użyć FAB:

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

W Material Design wyróżniamy 4 rodzaje FAB:

  • FAB: pływający przycisk polecenia o zwykłym rozmiarze.
  • Mały FAB: mniejszy pływający przycisk polecenia.
  • Duży FAB: większy pływający przycisk polecenia.
  • Rozszerzony FAB: pływający przycisk polecenia, który zawiera coś więcej niż tylko ikonę.
Przykłady 4 komponentów pływającego przycisku polecenia.
Rysunek 1. 4 rodzaje pływających przycisków polecenia.

Powierzchnia interfejsu API

Chociaż istnieje kilka funkcji kompozycyjnych, których możesz użyć do utworzenia pływających przycisków polecenia zgodnych z Material Design, ich parametry nie różnią się zbytnio. Oto najważniejsze parametry, o których należy pamiętać:

  • 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 polecenia, użyj podstawowej FloatingActionButton funkcji kompozycyjnej. 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 polecenia, użyj funkcji kompozycyjnej SmallFloatingActionButton. Poniższy przykład pokazuje, jak to zrobić, dodając spersonalizowane kolory.

@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 komponentu SmallFloatingActionButton, która zawiera ikonę „dodaj”.
Rysunek 3. Mały pływający przycisk polecenia.

Duży przycisk

Aby utworzyć duży pływający przycisk polecenia, użyj funkcji kompozycyjnej LargeFloatingActionButton. Ta funkcja kompozycyjna 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 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 elementu LargeFloatingActionButton, która zawiera ikonę „dodaj”.
Rysunek 4. Duży pływający przycisk polecenia.

Rozszerzony przycisk

Za pomocą funkcji kompozycyjnej ExtendedFloatingActionButton możesz tworzyć bardziej złożone pływające przyciski polecenia. Główna różnica między nią a FloatingActionButton polega na tym, że ma ona dedykowane icon i text parametry. Umożliwiają one utworzenie przycisku z bardziej złożoną treścią, która jest odpowiednio skalowana.

Poniższy fragment kodu pokazuje, jak zaimplementować ExtendedFloatingActionButton, z przykładowymi wartościami przekazanymi dla icon i text.

@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