如何将某物拖到另一个视图后面



我正在尝试编写一个类似日历的自定义视图,如本文所述,它也有点像Excel电子表格。顶部为页眉,左侧为列计数。这些贴在的顶部和左侧

https://danielrampelt.com/blog/jetpack-compose-custom-schedule-layout-part-1/

与这篇博客文章不同的是,我需要能够向各个方向拖动我的内容,因为它在内容上添加了水平/垂直滚动修饰符,以保持标题的位置。

看起来我需要使用pointInputdetectDragGestures,但当我使用它时,它会像我想要的那样拖动,标题固定在顶部并向左/向右移动,列计数固定在左侧并向上和向下移动

但是当我向上或向左拖动列/标题时,日程表内容会滚动到列/标题上。

我需要拖动的内容放到标题/列指示符后面。

我的布局像这个

var offsetX by remember { mutableStateOf(0f) }
var offsetY by remember { mutableStateOf(0f) }
Column(
modifier = modifier.pointerInput(Unit) {
detectDragGestures { change, dragAmount ->
change.consumeAllChanges()
offsetX = (offsetX + dragAmount.x).coerceIn((-1 * unitWidth.toPx() * unitList.count()), 0f)
offsetY = (offsetY + dragAmount.y).coerceIn(-1 * hourHeight.toPx() * 24, 0f)
}
}
) {
Header(modifier = Modifier.offset { IntOffset(offsetX.roundToInt(), 0) } )

Row(modifier = Modifier.weight(1f)) {
SideBar( modifier = Modifier.offset { IntOffset(0, offsetY.roundToInt())})
Schedule( modifier = Modifier.offset { IntOffset(offsetX.roundToInt() + unitWidth.roundToPx(), offsetY.roundToInt()) }.weight(1f)) } )
)
}

如何启用在任何方向上拖动,并且不与其他视图重叠?我希望内容在进入标题时隐藏/消失在标题后面。

只需将头文件和内容的z索引设置为5,将可拖动文件的z索引设为更低的值。当达到适当的位置时,它将自动被剪裁

最新更新