您的位置:首页 > 移动开发 > Android开发

Android 位移动画移动后 子元素未移动问题

2016-03-31 00:00 615 查看
问题描述:

移动一个Linerlayout 包含子元素多个button ,使用位移动画后,发现button的点击区域还在位移前的位置,并没有跟随移动,百思不得解,最后在CSDN发现了解决了方法,感觉这个api 有点不太友好,不知道这样设计的目的是出于什么考虑,但对于使用者来说,确实带来不少麻烦。解决参考 http://bbs.csdn.net/topics/360035885 很久之前的帖子了。

筛选的解决方法:

例如初始位置是0,你要运动到 300

那么你可以new TranslateAnimation(0, 300, 0, 0);来获得位移动画,但是移动后,它会闪回0位置,因为控件实际坐标还是0 (你可以用getX()来测试一下),而如果你用setFillAfter(true)来填充位置,它看起来停留在300了,可是你getX(),它还是0,这种情况就好像控件被拉伸了,但是实际坐标没有变,最要命的是,点击热区不会随控件移动(让人无法接受...)

然后这里提出了先移位,再做位置变换,你先visibility-gone,移动好控件位置,再visibility-visible,然后这时候你控件的位置已经在300了,如果这时候你用new TranslateAnimation(0, 300, 0, 0),就会从300移动到600再弹回来,于是做个反向offset,new TranslateAnimation(-300, 0, 0, 0),那么就从0,运动到300,而且不回弹了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: