我已按照dmanargias的说明回答:Android Fragments and animation
动画本身可行,但添加片段时的初始动画是做一些奇怪的事情。在动画开始之前,初始片段似乎被新片段替换。
e.g。人们会期待动画片 A< -B(B从右边滑到A面)
然而,一旦动作开始A立即变为B并且你得到一个动画 B< -B。
当弹出堆栈时,你会得到一个正确的A - >动画。 B(B滑走露出A)
这是添加片段的代码:
CategoryFragment newFragment = CategoryFragment.newInstance();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.pop_enter, R.anim.pop_exit);
fragmentTransaction.replace(R.id.fragment, newFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
任何想法为什么会发生这种情况以及是否有办法解决这个问题?
答案 0 :(得分:0)
试试这个:
final CategoryFragment newFragment = CategoryFragment.newInstance();
final View container = findViewById(R.id.fragment);
container.postDelayed(new Runnable() {
@Override
public void run() {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.pop_enter, R.anim.pop_exit);
transaction.replace(container.getId(), newFragment).commit();
currentFragment = cardFragment;
}
}, 0);
答案 1 :(得分:0)
我遇到了完全相同的问题,但有不同的动画。
检查xml动画中android:shareInterpolator
未设置为true。