我通过向XML添加animateLayoutChanges
来利用LinearLayout的自动(内置)动画。
这很好用。
但是,当我将Animation.AnimationListener
附加到该LinearLayout时,它永远不会触发。所以,我很困惑我应该附加什么样的听众,也许我应该把它附加到哪里,以便找出给定的过渡动画何时完成。
所以...我拥有的是这个:
LinearLayout productsList = (LinearLayout)findViewById(R.id.pList);
productsList.setLayoutAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Log.d(TAG, "animation started");
}
@Override
public void onAnimationEnd(Animation animation) {
Log.d(TAG, "animation ended");
}
@Override
public void onAnimationRepeat(Animation animation) {
Log.d(TAG, "animation repeated");
}
});
动画按预期播放,但我的日志都没有写过。
我是否必须将自己的自定义动画附加到布局才能使用,或者我错过了一些明显的东西?
答案 0 :(得分:2)
试试这个:
productsList.getLayoutTransition().addTransitionListener(new LayoutTransition.TransitionListener() {
@Override
public void startTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType) {
}
@Override
public void endTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType) {
}
});