android - 监听 ViewAnimator 的动画结束事件
问题描述
我有以下ViewAnimator
<ViewAnimator
android:padding="12dp"
android:id="@+id/view_animator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateFirstView="true">
<include
android:id="@+id/setup_password_select_type"
layout="@layout/setup_password_select_type" />
<include
android:id="@+id/setup_password_pattern"
layout="@layout/setup_password_pattern" />
<include
android:id="@+id/setup_password_pincode"
layout="@layout/setup_password_pincode" />
</ViewAnimator>
我以下列方式执行动画。
viewAnimator.setInAnimation(slideInRightFast);
viewAnimator.setOutAnimation(slideOutLeftSlow);
viewAnimator.setDisplayedChild(1);
我想知道,我怎样才能收听动画事件的结束?
我试着用
this.viewAnimator.setLayoutAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
android.util.Log.i("CHEOK", "Animation end -> " + viewAnimator.getDisplayedChild());
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
但上述方法不起作用。
解决方案
公共无效 setLayoutAnimationListener (Animation.AnimationListener animationListener)
指定布局动画事件必须发送到的动画侦听器。
ViewAnimator
如果我是对的,我猜你想听 的动画孩子:
ViewGroup
在这种情况下,您的代码正在侦听的动画是ViewAnimator
但不是孩子
如果您需要,请尝试此解决方案:
slideInRightFast.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Toast.makeText(getApplicationContext(),"START",Toast.LENGTH_SHORT).show();
}
@Override
public void onAnimationEnd(Animation animation) {
Toast.makeText(getApplicationContext(),"END",Toast.LENGTH_SHORT).show();
}
@Override
public void onAnimationRepeat(Animation animation) {
Toast.makeText(getApplicationContext(),"REPEAT",Toast.LENGTH_SHORT).show();
}
});
希望它可以帮助你。对不起我的英语不好。
推荐阅读
- python - 如何通过 Selenium 将字符序列发送到 url 中的用户名和密码字段?
- c++ - 无法将 boost 库与 CMake 链接
- c++ - Lua 5.1 中缺少 luaL_len
- javascript - 单击按钮时显示列表中的某些元素
- c# - C# 反射 - PropertyInfo.SetValue [对象与目标类型不匹配]
- mobile - 自动播放不起作用添加到主屏幕
- python - 在 PyMC3 中定义数字(自定义)似然函数
- jmeter - 性能测试瓶颈微服务
- r - 获取多个(> 2)字符同时出现的实例数
- regex - 在 spaCy PhraseMatcher 上使用正则表达式