动画后无法单击TranslateAnimated ImageView[Android]

动画后无法单击TranslateAnimated ImageView[Android],android,animation,clickable,Android,Animation,Clickable,我有两个ImageViews,可以从屏幕顶部转换到底部。这些视图是从xml导入的,动画是从java代码添加的。动画效果很好,但我在java代码中添加的onClickListener似乎不起作用。我使用动画的fillAfter属性使图像在翻译后停留在到达位置,但这些图像不再可单击。。。然而,他们在翻译前的位置仍然可以点击。。。 我看不出这有什么逻辑。有人能给我一些建议吗?这是因为动画只影响小部件的绘制。但是,实际位置没有受到影响-它仍然在前一个位置- 要解决此问题,需要通过安装动画侦听器手动更新I

我有两个
ImageView
s,可以从屏幕顶部转换到底部。这些视图是从xml导入的,动画是从java代码添加的。动画效果很好,但我在java代码中添加的
onClickListener
似乎不起作用。我使用动画的
fillAfter
属性使图像在翻译后停留在到达位置,但这些图像不再可单击。。。然而,他们在翻译前的位置仍然可以点击。。。
我看不出这有什么逻辑。有人能给我一些建议吗?

这是因为动画只影响小部件的绘制。但是,实际位置没有受到影响-它仍然在前一个位置-

要解决此问题,需要通过安装动画侦听器手动更新ImageView的布局参数,如下所示:

Animation.setAnimationListener(new AnimationListener() {
        public void onAnimationStart(Animation arg0) {

        }

        public void onAnimationRepeat(Animation arg0) {
            //TODO Auto-generated method stub
        }

        public void onAnimationEnd(Animation arg0) {
            android.widget.LinearLayout.LayoutParams params = new LayoutParams(
            android.widget.LinearLayout.LayoutParams.FILL_PARENT,
            android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
            params.topMargin = addLocationButton.getTop()-100;

            ImageView.setLayoutParams(params);
        }
        });

好的,在这里找到了我的答案:现在我只需要正确地设置它的参数以获得正确的位置…但是,这似乎与setFillAfter不兼容。我添加或删除它以使其工作。我遇到了这个问题,经过一些研究后解决了它。[这里您可以找到答案][1][1]:不好,因为在onAnimationEnd中播放动画后,当图像从“setLayoutParams(params);”获取位置时,我会看到闪烁。我补充说,很难从属性toydelta的百分比中设置topMargin以消除闪烁,您可以使用animation.reset()。clearAnimation();