没有这样的方法错误动画withendaction方法android

时间:2013-07-09 06:59:37

标签: android listview animation android-animation

您好我正在开发小型Android应用程序,其中我想对列表行进行滑动删除。为此我在触摸侦听器上使用视图并使用一些动画删除行。一切正常,除了withendaction()方法,它没有给出这样的方法错误。我知道它支持api级别16以上,并根据我在以下方式尝试的方式设置了我所需的api级别:

private View.OnTouchListener mTouchListener = new View.OnTouchListener() {

@Override
public boolean onTouch(final View v, MotionEvent event) {

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:

    break;
    case MotionEvent.ACTION_CANCEL:
    break;
    case MotionEvent.ACTION_MOVE:

    break;
    case MotionEvent.ACTION_UP:
    {
            v.animate().setDuration(duration).
                    alpha(endAlpha).translationX(endX).
                    withEndAction(new Runnable() {
                        @Override
                        public void run() {

                        }
                    });


        }
    }
    break;
    default: 
    return false;
    }
    return true;
}
};

我的所有动画都运行良好,但在有效方法的情况下,它会出现no such a method错误 难道我做错了什么?需要帮助。

谢谢。

3 个答案:

答案 0 :(得分:1)

如果您想要支持API 9设备,则无法使用View.animate()功能。

您必须使用较旧的动画框架,例如AlphaAnimation

淡入按钮的示例代码:

    AlphaAnimation anim = new AlphaAnimation(0f, endAlpha);
    anim.setDuration(duration);

    anim.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            // Do stuff on animation end
        }
    });

    v.startAnimation(anim);

如果您希望它也为视图翻译设置动画,则需要使用TranslateAnimation

添加这样的其他动画

答案 1 :(得分:0)

API级别15支持此调用。因此,如果您在任何早期SDK版本上尝试它,它将抛出所述异常

答案 2 :(得分:0)

我认为view.animate适用于:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1)

代表

< API 12

使用nineoldandroids库