布局过渡动画用于显示和消失,但不适用于更改标志

时间:2014-11-20 10:50:23

标签: java android animation android-cardview layouttransition

我正在使用布局转换,当我将视图设置为View.GONE和View.VISIBLE时触发一些动画。

它正在工作,我用4个标志来告诉它动画的时间和时间。 这些是:

LayoutTransition.APPEARING - 为设置为visible的视图设置动画。 LayoutTransition.CHANGE_APPEARING - 当视图设置为可见时,为组中的其他视图设置动画。 LayoutTransition.DISAPPEARING - 为设置为已消失的视图设置动画。 LayoutTransition.CHANGE_DISAPPEARING - 当视图设置为不存在时,为组中的其他视图设置动画。

这是我设置动画的代码

    transition.setAnimator(LayoutTransition.APPEARING, changeOut2);
    transition.setAnimator(LayoutTransition.CHANGE_APPEARING, changeOut2);
    transition.setAnimator(LayoutTransition.DISAPPEARING, changeOut1);
    transition.setAnimator(LayoutTransition.CHANGE_DISAPPEARING, changeOut1);

我的问题是更改标志没有运行动画,但其他标准正常运行。

编辑:添加了监听器

布局:在同一线性布局中有三个cardview都设置了LayoutTransition。两个正在消失,并且change_disappearing应该针对仍然在视图中的第三个cardview运行。

我添加了一个监听器,如下所示:

transition.addTransitionListener(new LayoutTransition.TransitionListener(){

        @Override
        public void startTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType) {
            switch(transitionType){
                case LayoutTransition.APPEARING:
                    Log.i("anim", "APPEARING: "+view.toString());
                    break;
                case LayoutTransition.DISAPPEARING:
                    Log.i("anim", "DISAPPEARING: "+view.toString());
                    break;
                case LayoutTransition.CHANGE_APPEARING:
                    Log.i("anim", "CHANGE_APPEARING: "+view.toString());
                    break;
                case LayoutTransition.CHANGE_DISAPPEARING:
                    Log.i("anim", "CHANGE_DISAPPEARING: "+view.toString());
                    break;
            }
        }

        @Override
        public void endTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType) {

        }
    });

我正在为APPEARING和DISAPPEARING获取正确的日志,但是没有来自任何CHANGE标志的日志,虽然我最初为父级获得了更改日志,所以我设置了以下内容:

        transition.setAnimateParentHierarchy(false);

日志目前看起来像:

11-20 16:04:05.195  13612-13612//*PACKAGE*/ I/anim﹕ APPEARING: android.support.v7.widget.CardView{4289d238 V.E...C. ......ID 0,0-1080,512 #7f080057 app:id/home_card}
11-20 16:04:05.195  13612-13612//*PACKAGE*/ I/anim﹕ APPEARING: android.support.v7.widget.CardView{428a3e80 V.E...C. ......ID 0,512-1080,1024 #7f080059 app:id/home_card1}

0 个答案:

没有答案