android - 不要在 Compose 中裁剪 AndroidView 的边界
问题描述
从AndroidView
文档:
AndroidView
会将其内容裁剪到布局边界,因为被裁剪是View
s 做出的常见假设 - 保持裁剪禁用可能会导致意外的绘图行为。请注意,这与 Compose 保持剪辑选择加入的做法有所不同,默认情况下是禁用的。
这似乎表明有一种方法可以关闭剪辑,但我无法做到。
我试过了:
Modifier.graphicsLayer(clip = false)
在AndroidView
clipToPadding = false
在View
clipToOutline = false
在View
clipChildren = false
在View
是否可以关闭剪辑?
解决方案
这是一个已知的功能请求,这是一个解决方法,直到它被实施:
@Composable
fun <T : View> AndroidView(
clipToBounds: Boolean,
factory: (Context) -> T,
modifier: Modifier = Modifier,
update: (T) -> Unit = NoOpUpdate,
) {
androidx.compose.ui.viewinterop.AndroidView(
factory = factory,
modifier = modifier,
update = if (clipToBounds) {
update
} else {
{
(it.parent as? ViewGroup)?.clipChildren = false
update(it)
}
}
)
}
推荐阅读
- python - TypeError:'float' 对象不能被解释为索引,解决这个问题的可能方法是什么?
- angular7 - ng serve 命令无法在 Angular 7 中编译
- python - 如何在 python 中将 if else 与 try except 结合起来
- dart - 如何在颤振测试覆盖中排除文件?
- sql - 如何在配置单元脚本中将子查询结果设置为变量
- spring-boot - Springboot别名'Int'已经映射到值'java.lang.Integer'
- google-apps-script - 如何将 WebStorm 用于 Google 应用脚本模板化 HTML?
- docker - 将卷挂载到 Docker 容器中并查看主机系统上的更改
- python - 使用类函数数组初始化类变量
- r - scanBam(bam_fn) 中的错误:找不到函数“scanBam”