キーワード: AiAssisted、プロダクト:JetpackCompose
ボタンは、ユーザーが定義されたアクションをトリガーできる基本的なコンポーネントです。ボタンには 5 種類あります。次の表に、5 種類のボタンの見た目と、それぞれの使用場所を示します。
タイプ | デザイン | 目的 |
---|---|---|
塗りつぶし | コントラストの強いテキストを使用した無地の背景。 | 高強調ボタン。これらは、アプリケーションのプライマリ アクション(「送信」や「保存」など)に使用されます。シャドウ効果により、ボタンの重要性が強調されます。 |
塗りつぶし明暗 | 背景色はサーフェスに合わせて変化します。 | メイン アクションや重要なアクションにも使用されます。塗りつぶしトーンボタンは、視覚的な重みが大きいため、「カートに追加」や「ログイン」などの機能に適しています。 |
高い | シャドウがあることで目立つ。 | トーンボタンと同様の目的で使用されます。標高を上げて、ボタンをさらに目立たせます。 |
枠線付き | 塗りつぶしなしの枠線が特徴です。 | 中強調ボタン。重要だがプライマリではないアクションが含まれます。他のボタンと組み合わせて、「キャンセル」や「戻る」などの代替のサブアクションを示すのに適しています。 |
テキスト | 背景や枠線なしでテキストを表示します。 | 重要度の低いアクション(ナビゲーション リンクなど)や、[詳細] や [詳細を表示] などの二次的な機能に最適な、強調の低いボタン。 |
この画像は、マテリアル デザインの 5 種類のボタンを示しています。
API サーフェス
onClick
- ユーザーがボタンを押したときにシステムが呼び出す関数。
enabled
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") } }
この実装は次のようになります。
