如何判断animateLayoutChanges何时完成?

时间:2016-03-03 00:28:51

标签: android animation android-linearlayout

我通过向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");
        }
    });

动画按预期播放,但我的日志都没有写过。

我是否必须将自己的自定义动画附加到布局才能使用,或者我错过了一些明显的东西?

1 个答案:

答案 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) {

    }
});