0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jetpack ComposeのFABボタンの種類

Posted at

はじめに

Jetpack Composeには、マテリアルデザインのFAB(フローティングアクションボタン)の種類が4つ存在するので紹介していきます。
まず、FABとはアプリ内の主要な操作を行うことを目的とするボタンです。通常は画面の右下に固定され、ユーザーが最も一般的な経路で操作できるように設計されるべきです。例えばメモアプリの場合、タップすると新規メモを作成できるなどです。
Android Developersの記事を参考にしています。
home.jpg

ボタンを配置

Composable関数内に書くことでFABを配置できます。
基本どこにでも配置できるはずですが、例ではScaffoldのfloatingActionButtonに代入しています。
以下のようにすると、BottomAppBarを避けて画面右下に配置できます。

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun FloatingActionButtonView() {
    Scaffold(
        floatingActionButton = {
            // 普通のFAB
            FloatingActionButton(
                onClick = {}
            ) {
                Icon(Icons.Filled.Edit, "Floating ActionButton")
            }
        }
    ) { innerPadding ->
        Column(
            modifier = Modifier
                .padding(innerPadding)
        ) {

        }
    }
}

FABの種類

普通サイズのFAB

Iconの引数であるimageVectorに他の値を渡すと、Iconを変更できます。

FloatingActionButton(
    onClick = {}
) {
    Icon(Icons.Filled.Edit, "Floating ActionButton")
}

basic.jpg

小さいサイズのFAB

SmallFloatingActionButton(
    onClick = {}
) {
    Icon(Icons.Filled.Edit, "Small floating action button.")
}

small.jpg

大きいサイズのFAB

LargeFloatingActionButton(
    onClick = {}
) {
    Icon(Icons.Filled.Edit, "Large floating action button")
}

big.jpg

拡張FAB

引数にIconとTextを渡すことで、簡単にアイコンと文字が融合したFABを作ることができる。

ExtendedFloatingActionButton(
    onClick = {},
    icon = { Icon(Icons.Filled.Edit, contentDescription = "Extended Floating ActionButton") },
    text = { Text("Extended FAB") }
)

e_fab.jpg

APIサーフェス

以下の機能が用意されています。
・onClick
・containerColor
・contentColor
・shape ⭐おまけ

onClick

引数としてonClickに以下のように書いて代入する。
そうすることでボタンをタップすると、代入した処理が実行される。

FloatingActionButton(
    onClick = {
        print("タップした。")
    }
) {
    Icon(Icons.Filled.Edit, "Floating ActionButton")
}

画像はsnackbarを表示させている。
tap.jpg

containerColor

引数としてcontainerColorに以下のように書いて代入する。
そうすることで背景色を変更することができる。

FloatingActionButton(
    onClick = {
        print("タップした。")
    },
    containerColor = Color.Green
) {
    Icon(Icons.Filled.Edit, "Floating ActionButton")
}

green.jpg

contentColor

引数としてcontentColorに以下のように書いて代入する。
そうすることで、ボタンの中の要素の色を変更することができる。

FloatingActionButton(
    onClick = {
        print("タップした。")
    },
    contentColor = Color.Red
) {
    Icon(Icons.Filled.Edit, "Floating ActionButton")
}

red.jpg

shape

引数としてshapeにCircleShapeを代入する。
そうすることで、FABを丸くすることができる。

FloatingActionButton(
    onClick = {
        print("タップした。")
    },
    shape = CircleShape
) {
    Icon(Icons.Filled.Edit, "Floating ActionButton")
}

circle.jpg

筆者が実装したソース

参考資料

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?