overridePendingTransition,Animation在一个实例中工作但在另一个实例中不工作?

时间:2017-11-03 20:29:15

标签: java android animation override transition

在MainActivity中单击了FloatingActionButton。现在,GroupsPage在MainActivity上向上滑动。在GroupsPage中单击常规按钮,现在GroupsPage向下滑动显示MainActivity。

问题 =当GroupsPage向下滑动显示MainActivity时,向下滑动的动画过渡太快,以至于动画向下几乎看不到。

这是我的代码: MainActivity =浮动操作按钮将您带到GroupsPage:向上滑动动画

final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            Intent startIntent = new Intent(getApplicationContext(), GroupsPage.class);
            startActivity(startIntent);



   overridePendingTransition(R.anim.animate_up, R.anim.no_anim);



        }
    }); 

^ 动画上滑效果很好。

在GroupsPage中,它有按钮,返回MainActivity向下滑动,这里是代码:

 Button BackToMainActivity = (Button) findViewById(R.id.ToMainActivity);
    BackToMainActivity.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent startIntent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(startIntent);


  // overridePendingTransition( 0, R.anim.animate_down);  
  overridePendingTransition( R.anim.no_anim, R.anim.animate_down);

        }

    });

这种转变应该有效。相反它所做的是它显示了MainActivity,就像它应该的那样,但是GroupsPage过渡动画向下但很快,几乎不可见的过渡,这是多快。

这是动画转换代码:

animate_up.xml:

android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="600" 

animate_down.xml:

android:fromYDelta="0"
android:toYDelta="100%p"
android:duration="600"

no_anim.xml:

android:fromXDelta="0"
android:toXDelta="0"
android:duration="500"

=============================================== =================

 overridePendingTransition( R.anim.animate_up, R.anim.animate_down); 

当我使用animate_down添加animate_up时。在这里,animate_down代码现在可以正常工作,它可以很好地动画。但是MainActivity屏幕现在也可以动画,我不需要。

overridePendingTransition( 0, R.anim.animate_down);
overridePendingTransition( R.anim.no_anim, R.anim.animate_down);

现在在上面的2个代码中,animate_down不起作用,它是一个奇怪的快速移动动画,几乎看不到。怎么会这样?

1 个答案:

答案 0 :(得分:0)

也许插补器可以提供帮助:

<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromYDelta="0%p"
    android:toYDelta="100%p"
    android:duration="600" />
</set>

https://developer.android.com/reference/android/view/animation/Interpolator.html