Android LinearLayout动画的可见性问题

时间:2010-03-25 15:38:36

标签: android animation click visibility android-linearlayout

我试图通过将其可见性属性分别设置为“VISIBLE”和“GONE”来交换两个LinearLayouts。我正在交换布局时使用动画。动画成功完成,我看到正确的布局。但是,将其可见性属性设置为“GONE”的先前Layout仍然会收到单击,即使它不可见。同时,只有在“GONE”布局不可点击的区域中单击时,“VISIBLE”布局才会收到点击。我也在“VISIBLE”布局上调用requestFocus方法。但它没有帮助。

此外,如果我跳过动画部分并只设置可见性属性,一切正常。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

如果要为小部件设置动画,则需要对布局进行更改以使结果“粘住”。只使用fillAfter内容会给你一些你看到的效果 - 它会在新位置绘制它们,但它们并不是新位置。

因此,我首先要关闭动画中的所有fill*设置(例如fillAfter)。看看你的动画表现如何。最有可能的是,它在视觉上现在将描述点击告诉你的内容。

然后,设置AnimationListener以在动画结束时获得控制权,此时,对小部件及其容器进行实际更改以影响您的结束位置。

Here is a sample project展示了我的意思,虽然过于复杂,但我正在制作自定义View而不是现成的小部件。