Плавающая кнопка действия (FAB) — это выделенная кнопка, которая позволяет пользователю выполнить основное действие в приложении. Он продвигает одно целенаправленное действие, которое является наиболее распространенным путем, который может предпринять пользователь, и обычно находится в правом нижнем углу экрана.
Рассмотрим эти три варианта использования FAB:
- Создать новый элемент : в приложении для создания заметок FAB можно использовать для быстрого создания новой заметки.
- Добавить новый контакт . В приложении чата FAB может открыть интерфейс, позволяющий пользователю добавлять кого-либо в разговор.
- Расположение по центру : в интерфейсе карты FAB может центрировать карту по текущему местоположению пользователя.
В Material Design существует четыре типа FAB:
- FAB : плавающая кнопка обычного размера.
- Small FAB : маленькая плавающая кнопка действия.
- Большая FAB : большая плавающая кнопка действия.
- Расширенный FAB : плавающая кнопка действия, которая содержит больше, чем просто значок.
поверхность API
Хотя существует несколько составных элементов, которые вы можете использовать для создания плавающих кнопок действий в соответствии с Material Design, их параметры не сильно отличаются. Среди ключевых параметров, на которые следует обратить внимание, можно выделить следующие:
-
onClick
: функция, вызываемая, когда пользователь нажимает кнопку. -
containerColor
: цвет кнопки. -
contentColor
: цвет значка.
Плавающая кнопка действия
Чтобы создать общую кнопку плавающего действия, используйте базовый компонуемый элемент FloatingActionButton
. Следующий пример демонстрирует базовую реализацию FAB:
@Composable fun Example(onClick: () -> Unit) { FloatingActionButton( onClick = { onClick() }, ) { Icon(Icons.Filled.Add, "Floating action button.") } }
Эта реализация выглядит следующим образом:
![Стандартная плавающая кнопка действия с закругленным углом, тенью и значком «Добавить».](https://developer.android.google.cn/static/develop/ui/compose/images/components/fab.png?authuser=0&hl=ru)
Маленькая кнопка
Чтобы создать небольшую плавающую кнопку действия, используйте составной объект 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, содержащая значок «добавить».](https://developer.android.google.cn/static/develop/ui/compose/images/components/fab-small.png?authuser=0&hl=ru)
Большая кнопка
Чтобы создать большую плавающую кнопку действия, используйте составной объект LargeFloatingActionButton
. Этот составной элемент существенно не отличается от других примеров, за исключением того факта, что в результате получается кнопка большего размера.
Ниже приведена простая реализация большого FAB.
@Composable fun LargeExample(onClick: () -> Unit) { LargeFloatingActionButton( onClick = { onClick() }, shape = CircleShape, ) { Icon(Icons.Filled.Add, "Large floating action button") } }
Эта реализация выглядит следующим образом:
![Реализация LargeFloatingActionButton, содержащая значок «добавить».](https://developer.android.google.cn/static/develop/ui/compose/images/components/fab-large.png?authuser=0&hl=ru)
Расширенная кнопка
Вы можете создавать более сложные плавающие кнопки действий с помощью составного элемента ExtendedFloatingActionButton
. Ключевое различие между ним и FloatingActionButton
заключается в том, что у него есть специальные параметры icon
и text
. Они позволяют создать кнопку с более сложным содержимым, которая масштабируется в соответствии с ее содержимым.
В следующем фрагменте кода показано, как реализовать ExtendedFloatingActionButton
, с примерами значений, передаваемых для icon
и text
.
@Composable fun ExtendedExample(onClick: () -> Unit) { ExtendedFloatingActionButton( onClick = { onClick() }, icon = { Icon(Icons.Filled.Edit, "Extended floating action button.") }, text = { Text(text = "Extended FAB") }, ) }
Эта реализация выглядит следующим образом:
![Реализация ExtendedFloatingActionButton, которая отображает текст с надписью «расширенная кнопка» и значок редактирования.](https://developer.android.google.cn/static/develop/ui/compose/images/components/fab-extended.png?authuser=0&hl=ru)