android - 为什么我不能在“BoxScope”中使用“AnimatedVisibility”?
问题描述
我有一个看起来像这样的布局:
Row {
...
Box(
modifier = Modifier
.fillMaxHeight()
.width(50.dp)
) {
AnimatedVisibility(
visible = isSelected && selectedAnimationFinished,
enter = fadeIn(),
exit = fadeOut()
) {
...
}
}
}
但我得到编译时错误:
fun RowScope.AnimatedVisibility(visible: Boolean, modifier: Modifier = ..., enter: EnterTransition = ..., exit: ExitTransition = ..., content: AnimatedVisibilityScope.() -> Unit): Unit' can't be called in this context by implicit receiver. Use the explicit one if necessary
似乎 Kotlin 发现AnimatedVisibility
函数模棱两可,因为 Compose 公开AnimatedVisibility
了具有相同签名的多个函数:有一个fun AnimatedVisibility
没有接收器,一个fun RowScope.AnimatedVisibility
需要RowScope
.
据我所知,Kotlin 抱怨我使用RowScope
错误的版本,但我只想使用没有接收器的版本!
使用this.AnimatedVisibility
也无济于事。
我发现唯一可行的解决方法是完全限定名称,例如androidx.compose.animation.AnimatedVisibility(...)
. 但我不知道为什么会这样。
任何人都可以对此有所了解吗?有没有比完全限定名称更好的选择?
解决方案
一种解决方法是使用完全限定名称:
Box {
androidx.compose.animation.AnimatedVisibility(visibile = ...) {
...
}
}
推荐阅读
- python - “.replace”运算符不工作 Python
- android-studio - 待办事项列表:复选框激活列表中的每个成员
- arrays - 用尽所有 onTap 功能时无法显示对话框
- kubernetes - Kubeadm 替换节点
- java - 如何在sqlite数据库java中存储对象
- java - 如何对除 api 网关之外的所有人隐藏我的公共微服务?
- python-3.x - 尝试通过 kudu 控制台在 python azure 函数中添加模块(speech_py_impl),但面临虚拟环境问题
- c# - CommandBinding 使用自定义 ICommand 实现时未调用已执行的事件处理程序
- python - 在 Python 中使用 OpenCV 确定图像中所有圆形(重叠)斑点的半径
- python - 非均匀间距,带有 numpy.gradient 的多元导数