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中的翻译确保您不会看到闪烁。