Button
Кнопки — это основные компоненты, которые позволяют пользователю запускать определенное действие. Существует пять типов кнопок. В следующей таблице описывается внешний вид каждого из пяти типов кнопок, а также то, где их следует использовать.
Тип | Появление | Цель |
---|---|---|
Заполненный | Сплошной фон с контрастным текстом. | Кнопки с высоким акцентом. Они предназначены для основных действий в приложении, таких как «отправить» и «сохранить». Эффект тени подчеркивает важность кнопки. |
Заполненный тональный | Цвет фона варьируется в зависимости от поверхности. | Также для основных или значимых действий. Заполненные кнопки обеспечивают больший визуальный вес и подходят для таких функций, как «добавить в корзину» и «Войти». |
Повышенный | Выделяется наличием тени. | Выполняет ту же роль, что и тональные кнопки. Увеличьте высоту, чтобы кнопка стала еще заметнее. |
Очерченный | Имеет границу без заливки. | Кнопки средней важности, содержащие действия, которые важны, но не являются основными. Они хорошо сочетаются с другими кнопками для указания альтернативных, второстепенных действий, таких как «Отмена» или «Назад». |
Текст | Отображает текст без фона и рамки. | Кнопки с низким акцентом, идеально подходящие для менее важных действий, таких как навигационные ссылки или второстепенные функции, такие как «Узнать больше» или «Просмотреть подробности». |
На следующем изображении показаны пять типов кнопок в Material Design.
API поверхность
-
onClick
: Функция вызывается, когда пользователь нажимает кнопку. -
enabled
: если установлено значение false, кнопка становится недоступной и неактивной. -
colors
: экземплярButtonColors
, определяющий цвета, используемые в кнопке. -
contentPadding
: Отступ внутри кнопки.
Заполненная кнопка
Заполненный компонент кнопки использует базовый Button
composable. Он заполнен сплошным цветом по умолчанию. Следующий фрагмент демонстрирует, как реализовать компонент:
@Composable fun FilledButtonExample(onClick: () -> Unit) { Button(onClick = { onClick() }) { Text("Filled") } }
Эта реализация выглядит следующим образом:

Заполненная тональная кнопка
Компонент кнопки с заполненным тоновым цветом использует компонуемый объект FilledTonalButton
. По умолчанию он заполнен тоновым цветом.
Следующий фрагмент демонстрирует, как реализовать компонент:
@Composable fun FilledTonalButtonExample(onClick: () -> Unit) { FilledTonalButton(onClick = { onClick() }) { Text("Tonal") } }
Эта реализация выглядит следующим образом:

Кнопка с контуром
Компонент кнопки с контуром использует компонуемый OutlinedButton
. По умолчанию он отображается с контуром.
Следующий фрагмент демонстрирует, как реализовать компонент:
@Composable fun OutlinedButtonExample(onClick: () -> Unit) { OutlinedButton(onClick = { onClick() }) { Text("Outlined") } }
Эта реализация выглядит следующим образом:

Кнопка с приподнятым краем
Компонент повышенной кнопки использует компонуемый ElevatedButton
. Он имеет тень, которая по умолчанию представляет эффект возвышения. Обратите внимание, что по сути это контурная кнопка с тенью.
Следующий фрагмент демонстрирует, как реализовать компонент:
@Composable fun ElevatedButtonExample(onClick: () -> Unit) { ElevatedButton(onClick = { onClick() }) { Text("Elevated") } }
Эта реализация выглядит следующим образом:

Текстовая кнопка
Компонент текстовой кнопки использует TextButton
composable. Пока не нажато, отображается только текст. По умолчанию не имеет сплошной заливки или контура.
Следующий фрагмент демонстрирует, как реализовать компонент:
@Composable fun TextButtonExample(onClick: () -> Unit) { TextButton( onClick = { onClick() } ) { Text("Text Button") } }
Эта реализация выглядит следующим образом:
