出现这种情况很可能是因为设置了animation,并且调用了setFillAfter(true),这就会导致setVisibility无效,只需要调用一下clearAnimation()方法或者去掉setFillAfter(true)语句即可。
实验证明只要在setVisibility之前设置View的mCurrentAnimation为null就可以,因此调用setAnimation(null)也是可以的。从源码来看setFillAfter为false时也会间接导致调用clearAnimation,而clearAnimation在这里使setVisibility有效的原因也是置mCurrentAnimation为null了。
setFillAfter为false时间接导致clearAnimation:
参考:
http://bbs.csdn.net/topics/390311261
http://blog.csdn.net/xxxzhi/article/details/8846248
http://stackoverflow.com/questions/8690029/why-doesnt-setvisibility-work-after-a-view-is-animated
http://www.cnblogs.com/liulipeng/p/3962101.html
本文探讨了在设置了动画并使用setFillAfter(true)后,尝试通过setVisibility改变视图状态时遇到的问题。文中提供了几种解决方案,包括调用clearAnimation()、将mCurrentAnimation设置为null或直接设置setFillAfter为false。
2693

被折叠的 条评论
为什么被折叠?



