【问题标题】:Do not clip bounds of AndroidView in Compose不要在 Compose 中裁剪 AndroidView 的边界
【发布时间】:2021-11-15 08:01:31
【问题描述】:

来自AndroidViewdocumentation

AndroidView 会将其内容剪裁到布局边界,因为被剪裁是Views 所做的常见假设 - 保持剪裁禁用可能会导致意外的绘图行为。请注意,这与 Compose 保持剪辑选择加入的做法有所不同,默认情况下禁用。

这似乎表明有一种方法可以关闭剪辑,但我无法做到。

我试过了:

  • Modifier.graphicsLayer(clip = false) AndroidView
  • clipToPadding = false View
  • clipToOutline = false View
  • clipChildren = false View

是否可以关闭剪辑?

【问题讨论】:

    标签: android android-jetpack-compose


    【解决方案1】:

    这是一个已知的feature request,这是一个解决方法,直到它被实施:

    @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)
                }
            }
        )
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多