[英]How to use a custom composable as parameter type in another custom composable?
有沒有辦法在另一個自定義組合中使用自定義組合作為參數類型? 嘗試這樣做只會引發unresolved reference
編譯器錯誤。 但是,使用 Jetpack Compose 提供的內置可組合項作為AlertDialog
等參數不會引發任何錯誤。 我想在自定義組合中使用插槽 API 模式,但將插槽限制為僅其他自定義組合。
示例結構
@Composable
fun Permission(
PermissionNotGrantedContent: CustomDialog, //Unresolved reference error here
PermissionNotAvailableContent: CustomDialog, //unresolved reference error here
PermissionGrantedContent: @Composable () -> Unit
) { ... }
Permission(
PermissionNotGrantedContent = {
CustomDialog(...)
},
PermissionNotAvailableContent = {
CustomDialog(...)
}
) {
Text("Thanks for granting the permission!")
}
例如 TextField 使用:
trailingIcon: @Composable (() -> Unit)? = null
我這樣做:
trailingIcon = {
IconButton(onClick = { viewModel.changeVisibility() }) {
if (viewModel.clearPassword.collectAsState().value!!) {
Icon(painter = painterResource(id = R.drawable.ic_visibility), contentDescription = "visible icon")
} else {
Icon(
painter = painterResource(id = R.drawable.ic_invisible), contentDescription = "invisible icon")
}
}
},
您應該在 Box、TextField 等可組合功能上使用命令 + 左鍵單擊(可能是 CTRL + 左鍵單擊窗口),它可以向您顯示很多參數,並且您可以看到它是如何工作的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.