当活动或片段破坏视图时,如何删除withEndAction runnable?我得到NPE,因为当用户按下后退按钮动画正在执行时,然后当调用runnable时,所有视图都为空。当然,如果检查我可以放空指针,但我可能还有另一种更好的方法。
view.animate().translationY(TRANSLATION_Y).withEndAction(new Runnable() {
@Override
public void run() {
otherview.setText(...);
}).start();
答案 0 :(得分:2)
view.animate()正在返回一个ViewPropertyAnimator实例,该实例负责制作动画,并保留 animationEndRunnable 。
view.animate()
.yBy(20)
.setDuration(300)
.withEndAction(animationEndRunnable)
.start();
要取消通过 .withEndAction()调用传递的Runnable,您只需在发布的同一视图上调用 view.animate()。cancel()即可
@Override
public void onDestroyView() {
super.onDestroyView();
view.animate().cancel();
}