关于AnimationListener嵌套回调
各位代码如下:
为啥test 执行结果在postion1 位置第二次设置的callback没起作用呢?
放在AnimationListener里的就首次设置的有效
position 2位置的callback就是正常的.
public class JavaTest {
private Context context;
public void test() {
testAnim(new ICallBack() {
@Override
public void onCallBack() {
// call back 1
}
});
testAnim(new ICallBack() {
@Override
public void onCallBack() {
//call back 2
}
});
//result
//position 1
//call back 1
//call back 1
//position 2
//call back 1
//call back 2
}
public void testAnim(final ICallBack callBack) {
Animation animation = new AlphaAnimation(0.0f, 1.0f);
AnimationListener listener = new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
/**
* position 1
*/
if (null != callBack) {
callBack.onCallBack();
}
}
@Override
public void onAnimationRepeat(Animation animation) {
}
};
animation.setAnimationListener(listener);
View view = new TextView(context);
view.startAnimation(animation);
/**
* position 2
*/
if (null != callBack) {
callBack.onCallBack();
}
}
public interface ICallBack {
void onCallBack();
}
}