android-studio - Android Jetpack Compose 错误:不能使用提供的参数调用以下函数:
问题描述
在将可组合项添加到片段时,我不断遇到此错误。看起来,所有可组合项都不会正确地接受参数。
因为TextField
我得到了错误:
None of the following functions can be called with the arguments supplied: public fun TextField(value: TextFieldValue, onValueChange: (TextFieldValue) -> Unit, modifier: Modifier = ..., enabled: Boolean = ..., readOnly: Boolean = ..., textStyle: TextStyle = ..., label: (() -> Unit)? = ..., placeholder: (() -> Unit)? = ..., leadingIcon: (() -> Unit)? = ..., trailingIcon: (() -> Unit)? = ..., isError: Boolean = ..., visualTransformation: VisualTransformation = ..., keyboardOptions: KeyboardOptions = ..., keyboardActions: KeyboardActions = ..., single.....
对于组件,我收到此消息:
@Composable invocations can only happen from the context of a @Composable function
这是我的片段:
class MovieListFragment : Fragment() {
private val viewModel: MovieListViewModel by viewModels()
@ExperimentalComposeUiApi
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return ComposeView(requireContext()).apply {
setContent {
val movies = viewModel.movies.value
val query = viewModel.query.value
val keyboardController = LocalSoftwareKeyboardController.current
Column {
Surface(
modifier = Modifier
.fillMaxWidth(),
color = MaterialTheme.colors.primary,
elevation = 8.dp
) {
Column {
Row(
modifier = Modifier
.fillMaxWidth(),
) {
TextField(
modifier = Modifier
.fillMaxWidth(0.9f)
.padding(8.dp),
value = query,
onValueChange = { newValue ->
viewModel.onQueryChanged(newValue)
},
label = {
Text(text = "Search Movies")
},
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Text,
imeAction = ImeAction.Search
),
leadingIcon = { Icon(Icons.Filled.Search, "Search") },
trailingIcon = {
Icon(
Icons.Filled.Clear,
contentDescription = "clear text",
modifier = Modifier
.clickable {
viewModel.onQueryChanged("")
}
)
},
keyboardActions = KeyboardActions(onSearch = {
viewModel.newSearch(query)
keyboardController?.hide()
}),
textStyle = TextStyle(
color =
MaterialTheme.colors.onSurface
),
backgroundColor = MaterialTheme.colors.surface,
)
}
LazyColumn {
itemsIndexed(
items = movies
) { index, movie ->
MovieCard(movie = movie, onClick = {})
}
}
}
}
}
}
}
}
}
解决方案
推荐阅读
- python - 创建子图,其中删除了从某些节点下降的节点
- delphi-10.4-sydney - delphi 中的 TEdit 需要回答哪些消息才能使 Windows 文本建议起作用
- bash - 从管道中的 git 提交消息中删除特殊字符
- ios - 创建 XCFrameworks 时缺少架构 x86_64
- python - 在 Pytest 夹具中修补导入的函数
- python - Numpy unwrap error when using apply() on Pandas dataframe
- java - 如何在文本小部件中读取 LocalTime 变量
- pipeline - 我需要在没有 nltk 的情况下在 python 中执行 Stemming 操作。使用管道方法
- angular - 实现可重用 Angular 反应式“子表单”的正确方法
- android - Kotlin 扩展在 Firebase Crashlytics 中引发 NullPointerException