在xamarin Android中为animationListener指定正确的方法

时间:2017-08-04 11:38:20

标签: xamarin.android

我在AnimationListener中遇到问题:

  1. 动画类型中不存在类型名称AnimationListener。
  2. 如果我更改为IAnimationListener,则会出现另一个错误。
  3. 内部Animation.AnimationListener animationListener = new AnimatorHolder();

    private class AnimatorHolder : Animation.AnimationListener {
    
        public int ChildCount { get; private set; }
    
        public AnimatorHolder() {
        }
    
        [Override()]
        public void onAnimationStart(Animation animation) {
        }
    
        [Override()]
        public void onAnimationEnd(Animation animation) {
            if (ChildCount > 1) {
                RemoveViewAt(0);
            }
        }
    
        [Override()]
        public void onAnimationCancel(Animation animation) {
        }
    
        [Override()]
        public void onAnimationRepeat(Animation animation) {
        }
    }
    

    并且RemoveViewAt(0);

    也会出错

1 个答案:

答案 0 :(得分:0)

这些Listener类的存在只是因为它是您在Java中编程的方式,因此Xamarin团队将其准确地转换为C#。但是,他们使用C#方式使用事件将所有这些方法放入Animation类。

因此,在您的Animation课程中,您需要做的就是连接事件:

Animation MyAnimation = new Animation();
...
MyAnimation.AnimationEnd += (s,e) => {
    if (ChildCount > 1) {
        RemoveViewAt(0);
    }
}

请参阅以下文档:https://developer.xamarin.com/api/type/Android.Views.Animations.Animation/