我正在自学 Android Jetpack Compose,并试图了解有关可组合函数调用的内容。
Official Android Doc 声明“只能从其他可组合函数的范围”内调用可组合函数。
我有这段代码在 Greeting
块中调用 setContent
Composable fxn。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
//calling Greeting() inside the setContent() block
Greeting("Me")
}
}
}
//Composable function
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!", modifier = Modifier.padding(16.dp))
}
这是否会使 setContent 阻塞一个 Composable,因为我们在其中调用了一个 Composable 函数?
请让我有你的想法和意见,谢谢大家。
答案 0 :(得分:1)
在您的 Activity
中,要创建基于 Compose 的屏幕,您必须调用 setContent()
方法,并传递您喜欢的任何可组合函数。
您可以查看源代码:
public fun ComponentActivity.setContent(
parent: CompositionContext? = null,
content: @Composable () -> Unit
)
其中 content
是一个声明 UI 内容的 @Composable
函数。