3

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

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

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

在此处输入图像描述

代码 :

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

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

4

2 回答 2

1

如果您对文本使用硬编码的宽度,则Modifier.wrapContentSize()在每个容器上应用可能会完成这项工作

于 2021-07-08T06:46:10.553 回答
1

使用此修饰符为行完成工作,在我的情况下,我还需要此布局修饰符,wrapContentSize(unbounded = true)正在工作,但由于某种原因,在缩放容器的范围之外无法点击子级!

我还必须创建一个可缩放的修饰符而不是使用可缩放的框,因此可缩放的触摸事件将在 this 可组合对象而不是父对象上发送!

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)
于 2021-07-27T08:16:47.950 回答