片段幻灯片动画正在替换动画之前的第一个片段

时间:2014-03-22 20:33:04

标签: android android-fragments

我已按照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();

任何想法为什么会发生这种情况以及是否有办法解决这个问题?

2 个答案:

答案 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。