您好我正在开发小型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
错误
难道我做错了什么?需要帮助。
谢谢。
答案 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库