Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 片段更改后未调用动画列表器_Java_Android_Android Fragments_Android Animation - Fatal编程技术网

Java 片段更改后未调用动画列表器

Java 片段更改后未调用动画列表器,java,android,android-fragments,android-animation,Java,Android,Android Fragments,Android Animation,我有一个包含片段的主要活动。可以通过选择菜单项来更改此片段 在第一个片段上单击菜单按钮。显示了侧栏。选择菜单项后,片段将发生更改 单击此片段上的菜单项时,不会立即调用动画列表。在调用脚本之前,首先必须向一个方向滚动。 菜单项在主活动中,所以它应该介意是否会有不同的片段,对吗 slideIn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in); slideIn.setAnimationListen


我有一个包含片段的主要活动。可以通过选择菜单项来更改此片段
在第一个片段上单击菜单按钮。显示了侧栏。选择菜单项后,片段将发生更改
单击此片段上的菜单项时,不会立即调用动画列表。在调用脚本之前,首先必须向一个方向滚动。 菜单项在主活动中,所以它应该介意是否会有不同的片段,对吗

    slideIn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in);
slideIn.setAnimationListener(new AnimationListener() {


@Override
        public void onAnimationStart(Animation animation) {
            isAnimating = true;
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            animation = new TranslateAnimation(0.0f, 0.0f, 0.0f, 0.0f);
            animation.setDuration((long) 0.1f);
            menuView.startAnimation(animation);
            ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) menuView.getLayoutParams();
            p.setMargins(0, 0, 0, 0);
            menuView.setLayoutParams(p);
            isAnimating = false;
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });

menuView.startAnimation(slideIn);
这就是片段变化:

trans = getSupportFragmentManager().beginTransaction();
                            trans.remove((Fragment) Globals.getInstance().getCurrentFragment());
                            trans.add(R.id.realtabcontent, fragmentName, "tag");
                            trans.commit();

在不同的片段上,动画一滚动就开始了。上面的代码都在主活动中

视图尚未绘制,因此它仅在输入后启动。 问题是我必须使我的根布局无效

积分转到

您的
翻译动画(float fromXDelta,float toXDelta,float fromYDelta,float toYDelta)
新的翻译动画(0.0f,0.0f,0.0f,0.0f)。所以开始和结束的X,Y坐标是相同的。因此,将不会有翻译来显示。在动画中滑动后,您想做什么?在动画结束后,菜单的位置将重置为起始位置,您可以在设置新位置之前看到这种情况。ONED中的翻译确保您不会看到闪烁。