Jetpack Compose - 当宽度增加时行剪切子项

Waq*_*hir 7 android-jetpack-compose android-jetpack-compose-list

在右侧,我有一个可组合项中的项目列表,每个项目都位于一行内,所有项目都位于一列内

所有的子项都被剪裁以适应我不想要的屏幕,我希望这些项目即使在屏幕之外也能完全渲染,因为我在它们上面有一个可缩放的容器

正如您所看到的,文本字段中的文本如何垂直排列在一行而不是扩大宽度,这就是问题所在

在此输入图像描述

代码 :

Row(
        modifier = modifier.zIndex(3f),
        verticalAlignment = Alignment.CenterVertically,
        horizontalArrangement = Arrangement.Center,
    ) {
        SimpleNodesList(
            modifier = Modifier.padding(8.dp),
            parentNode = state.center,
            nodes = state.center.left,
            renderRight = false,
        )

        SimpleNode(node = state.center, parentNode = null)

        SimpleNodesList(
            modifier = Modifier.padding(8.dp),
            parentNode = state.center,
            nodes = state.center.right,
            renderLeft = false
        )
    }
Run Code Online (Sandbox Code Playgroud)

简单节点列表是一列行,我左边一列,右边一列,如果左列的宽度增加,右行就会被屏幕剪掉

Waq*_*hir 5

使用此修改器可以完成行的工作,在我的情况下,我还需要此布局修改器,它wrapContentSize(unbounded = true)正在工作,但由于某种原因,子级在缩放容器的边界之外不可单击!

我还必须创建一个可缩放修改器而不是使用可缩放框,因此可缩放触摸事件将分派到此可组合项而不是父级!

modifier = Modifier
        .layout { measurable, constraints ->
            val r =
                measurable.measure(constraints = constraints.copy(maxWidth = Constraints.Infinity))
            layout(r.measuredWidth, r.measuredHeight, placementBlock = {
                r.placeWithLayer(0, 0, 0f) {

                }
            })
        }
        .wrapContentSize(unbounded = true)
Run Code Online (Sandbox Code Playgroud)