标题有点难用,但这是我的情况。我有一个 VStack,我需要为在堆栈中被点击的项目下方形成的间隙设置动画。
例如,我尝试将 .padding(.bottom, isTapped ? 50 : 0) 添加到项目中,但它不会产生所需的结果。例如,如果项目 X 是我点击的项目,这就是我使用此方法得到的行为
empty space --> X-1
X-1 --> X
X --> space created
X+1 --> X+1
empty space --> empty space
基本上,正如我试图说明的那样,它向上推动 X 上方的项目以及向下推动其下方的项目。
有什么办法可以去做我想做的事吗?一种方法来修复 X 和它上面的项目,以便只有下面的项目会移动?
编辑:这是一个更真实的示例,当点击中间项目时,会导致在其下方添加填充,但不幸的是,这不仅仅将前 2 个保留在原处并将第三个向下推。但是它将前两个向上移动,第三个向下移动。(此外,填充也不会像下面的示例所示那样放置,而是在项目视图本身中,如果这会有所不同的话)
VStack{
Item().padding(.bottom, isTapped ? 50: 0)
Item().padding(.bottom, isTapped ? 50: 0)
Item().padding(.bottom, isTapped ? 50: 0)
}