📜  jetpack compose 获取上下文 - Kotlin (1)

📅  最后修改于: 2023-12-03 14:43:06.257000             🧑  作者: Mango

Jetpack Compose 获取上下文 - Kotlin

在Jetpack Compose中,要获取当前视图的上下文,可以使用LocalContext对象。下面是一些关于如何使用LocalContext来获取上下文的示例代码。

示例 1:在函数组件中获取上下文

在函数组件中,可以使用LocalContext.current来获取上下文。例如,可以像下面这样在组件中使用Toast

@Composable
fun MyComponent() {
    val context = LocalContext.current
    Button(onClick = { Toast.makeText(context, "Hello!", Toast.LENGTH_SHORT).show() }) {
        Text("Say hello")
    }
}
示例 2:在自定义组件中获取上下文

在自定义组件中,可以通过注入上下文来获取LocalContext对象。例如,可以像下面这样定义一个自定义组件:

@Composable
fun MyCustomComponent(context: Context) {
    Button(onClick = { Toast.makeText(context, "Hello!", Toast.LENGTH_SHORT).show() }) {
        Text("Say hello")
    }
}

然后,在其他地方使用MyCustomComponent时,可以将LocalContext.current传入该组件:

@Composable
fun MyOuterComponent() {
    val context = LocalContext.current
    MyCustomComponent(context)
}

这样,在MyCustomComponent中就可以使用传递进来的上下文了。

以上就是Jetpack Compose中获取上下文的示例代码。使用LocalContext可以轻松地获取当前视图的上下文,从而在组件中使用系统服务、资源等。