1
0

Jetpack Composeでcontextを取得する方法

Posted at

実践

val context = LocalContext.current

これだけでOK

注意

自分はToastをJetpack Composeで使用するときにこの状況になったのですが、

@Composable
fun MyScreen() {
    Button(
        onClick = {
            Toast.makeText(LocalContext.current, "", Toast.LENGTH_SHORT).show()
        }) {}
}

このようにcontextが必要な引数に直接 LocalContext.currentを入力したところ、以下のようなエラーが出ました。

@Composable invocations can only happen from the context of a @Composable function

このエラー内容は、簡単にいると@Composable アノテーションを付けた関数内でのみ呼び出すことができます。

といった内容なので、インスタンス化してから引数として渡すようにします。

@Composable
fun MyScreen() {
    val context = LocalContext.current

    Button(
        onClick = {
            Toast.makeText(context, "", Toast.LENGTH_SHORT).show()
        }) {}
}

これでエラーがなくなりました。

1
0
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
1
0