ボタンは、ユーザーが定義されたアクションをトリガーできるようにする基本的なコンポーネントです。ボタンには 5 種類あります。次の表に、5 種類のボタンの外観と、使用する場所を示します。
| タイプ | デザイン | 目的 |
|---|---|---|
| 塗りつぶし | 背景が単色で、テキストがコントラストのある色で表示されます。 | 強調度の高いボタン。これは、アプリのプライマリ アクション([送信] や [保存] など)に使用します。シャドウ効果により、 ボタンの重要性が強調されます。 |
| 塗りつぶし(トーン) | 背景色はサーフェスに合わせて変化します。 | プライマリ アクションや重要なアクションにも使用します。塗りつぶし(トーン)ボタンは 視覚的な重みが大きく、[カートに追加] や [ログイン] などの機能に適しています。 |
| 浮き上がり | シャドウが付いていて目立ちます。 | トーンボタンと同様の目的で使用します。浮き上がりを大きくすると、 ボタンがさらに目立つようになります。 |
| アウトライン | 塗りつぶしなしの枠線が特徴です。 | 中強調ボタン。重要だが プライマリではないアクションが含まれます。他のボタンと組み合わせて、代替の サブアクション([キャンセル] や [戻る] など)を示すのに適しています。 |
| テキスト | 背景や枠線なしでテキストを表示します。 | 低強調ボタン。 ナビゲーション リンクなどの重要度の低いアクションや、[詳細] や [詳細を表示] などのサブ機能に最適です。 |
この画像は、マテリアル デザインの 5 種類のボタンを示しています。
API サーフェス
onClick- ユーザーがボタンを押したときにシステムが呼び出す関数。
enabled- When
false, このパラメータによりボタンが使用不可で 非アクティブになります。 colors- ボタンで使用する色を決定する
ButtonColorsのインスタンス。 contentPadding- ボタン内のパディング。
塗りつぶしボタン
塗りつぶしボタン コンポーネントは、基本的な Button コンポーザブルを使用します。デフォルトでは単色で塗りつぶされます。次のスニペットは、このコンポーネントを実装する方法を示しています。
@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 fun TextButtonExample(onClick: () -> Unit) { TextButton( onClick = { onClick() } ) { Text("Text Button") } }
この実装は次のように表示されます。
図 6. テキストボタン。