Android LinearLayout动画可见性问题

Android LinearLayout动画可见性问题,android,animation,click,visibility,android-linearlayout,Android,Animation,Click,Visibility,Android Linearlayout,我试图通过将两个LinearLayout的可见性属性分别设置为“VISIBLE”和“GONE”来交换它们。在交换布局时,我还使用了一个动画。动画成功完成,我看到了正确的布局。但是,将“可见性”属性设置为“已消失”的上一个布局即使不可见,仍会收到单击。同时,“可见”布局只有在“消失”布局不可单击的区域中单击时才会收到单击。我还在“可见”布局上调用requestFocus方法。但这没用 此外,如果我跳过动画部分,只设置可见性属性,则一切正常 我在这里遗漏了什么?如果您正在为小部件设置动画,则需要对布

我试图通过将两个LinearLayout的可见性属性分别设置为“VISIBLE”和“GONE”来交换它们。在交换布局时,我还使用了一个动画。动画成功完成,我看到了正确的布局。但是,将“可见性”属性设置为“已消失”的上一个布局即使不可见,仍会收到单击。同时,“可见”布局只有在“消失”布局不可单击的区域中单击时才会收到单击。我还在“可见”布局上调用requestFocus方法。但这没用

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


我在这里遗漏了什么?

如果您正在为小部件设置动画,则需要对布局进行更改,以使结果“保持不变”。只需使用
fillAfter
工具,您就会看到一些效果——它在新位置绘制它们,但它们实际上并不在新位置

因此,我首先要关闭动画中的任何
fill*
设置(例如
fillAfter
)。然后查看动画的行为。最有可能的是,它现在将直观地描述点击告诉您的内容

然后,设置一个
AnimationListener
,以便在动画结束时获得控制权,并在此时对小部件及其容器进行真正的更改,以影响结束位置

这说明了我的意思,尽管过于复杂,因为我正在制作自定义视图的动画,而不是现成的小部件。

很酷。我从动画中删除了setFillAfter(true)。成功了!我还不清楚setfillAfter到底做了什么。你给出的示例项目似乎来自你的书。几天前我正在进行演示,但演示不起作用。今晚我将再次尝试,以便更好地理解这个问题。谢谢你的帮助。