我试图通过将其可见性属性分别设置为“VISIBLE”和“GONE”来交换两个LinearLayouts。我正在交换布局时使用动画。动画成功完成,我看到正确的布局。但是,将其可见性属性设置为“GONE”的先前Layout仍然会收到单击,即使它不可见。同时,只有在“GONE”布局不可点击的区域中单击时,“VISIBLE”布局才会收到点击。我也在“VISIBLE”布局上调用requestFocus方法。但它没有帮助。
此外,如果我跳过动画部分并只设置可见性属性,一切正常。
我在这里缺少什么?
答案 0 :(得分:2)
如果要为小部件设置动画,则需要对布局进行更改以使结果“粘住”。只使用fillAfter
内容会给你一些你看到的效果 - 它会在新位置绘制它们,但它们并不是在新位置。
因此,我首先要关闭动画中的所有fill*
设置(例如fillAfter
)。看看你的动画表现如何。最有可能的是,它在视觉上现在将描述点击告诉你的内容。
然后,设置AnimationListener
以在动画结束时获得控制权,此时,对小部件及其容器进行实际更改以影响您的结束位置。
Here is a sample project展示了我的意思,虽然过于复杂,但我正在制作自定义View而不是现成的小部件。