首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android :在动画时没有触发单击事件

Android :在动画时没有触发单击事件
EN

Stack Overflow用户
提问于 2017-04-24 11:08:27
回答 2查看 224关注 0票数 2

我有个按钮。在点击按钮,我动画的TextView。

在动画时,单击不适用于文本视图。

代码语言:javascript
运行
复制
 buttonclick.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           final Animation animation = new TranslateAnimation(
                    Animation.RELATIVE_TO_SELF, 1.0f,
                    Animation.RELATIVE_TO_SELF, 10.0f,
                    Animation.RELATIVE_TO_SELF, 1.0f,
                    Animation.RELATIVE_TO_SELF, 10.0f);
            animation.setDuration(100000);
            textView.startAnimation(animation);
        }
    });


    textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this,"Click",Toast.LENGTH_SHORT).show();
        }
    });
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-24 11:20:27

Animation只是充满活力的观点,而不是改变,这是一种幻觉.您使用的是TranslateAnimation,所以您正在移动视图的“外观”,而不是视图本身。首先,您可以使用setFillAfter(true)方法,然后在动画结束后可以单击View (但是您的anim是长/无限的.)。

考虑使用Animator代替,它正在更改视图的“参数”(在您的实际位置)与每个帧的anim。

代码语言:javascript
运行
复制
ObjectAnimator animX = ObjectAnimator.ofFloat(textView, "x", newx);
ObjectAnimator animY = ObjectAnimator.ofFloat(textView, "y", newy);
AnimatorSet animSetXY = new AnimatorSet();
animSetXY.playTogether(animX, animY);
animSetXY.start();
票数 1
EN

Stack Overflow用户

发布于 2017-04-24 11:40:51

尝尝这个

代码语言:javascript
运行
复制
PropertyValuesHolder x = PropertyValuesHolder.ofFloat("x", 50f);
PropertyValuesHolder y = PropertyValuesHolder.ofFloat("y", 100f);
ObjectAnimator.ofPropertyValuesHolder(mTextView, x, y).start();

这样,你可以动画整个视图对象--不仅仅是内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43586496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档