【Jetpack Compose/Android】DropdownMenuの実装方法!

【Jetpack Compose/Android】DropdownMenuの実装方法!

この記事からわかること

  • Kotlin/Android Jetpack ComposeDropdownMenu使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

DropdownMenuの実装方法

【Jetpack Compose/Android】DropdownMenuの実装方法!

Jetpack Composeでボタンをタップした際にメニューが表示されるようなUI(DropdownMenu)を実装する方法をまとめていきます。実装方法はDropdownMenuDropdownMenuItemを使用します。引数expanded開閉を制御するためのフラグ変数を渡します。

var expanded by remember { mutableStateOf(false) }
  
DropdownMenu(
    expanded = expanded,
    onDismissRequest = { expanded = false }
) {
    DropdownMenuItem(
        text = {
            Row(
                verticalAlignment = Alignment.CenterVertically,
                horizontalArrangement = Arrangement.spacedBy(8.dp)
            ) {
                CustomText("カメラを起動する")
                Icon(
                    imageVector = Icons.Default.CameraAlt,
                    contentDescription = "Camera"
                )
            }

        },
        onClick = {
            expanded = false
            // カメラ起動
            cameraLauncher.launch(it)
        }
    )

    DropdownMenuItem(
        text = {
            Row(
                verticalAlignment = Alignment.CenterVertically,
                horizontalArrangement = Arrangement.spacedBy(8.dp)
            ) {
                CustomText("写真から選択する")
                Icon(
                    imageVector = Icons.Default.Image,
                    contentDescription = "Gallery"
                )
            }
        },
        onClick = {
            expanded = false
            // ギャラリー起動
            imageLauncher.launch("image/*")
        }
    )
}

メニューで表示する部分はDropdownMenuItemを使用します。onClickメニューがタップされた時の挙動を制御することができます。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

Search Box

Sponsor

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index