退出半透明活动中的过渡

时间:2018-11-04 08:27:25

标签: android android-transitions

我正在尝试进行半透明活动时的简单淡出过渡。活动的风格为:

df %>% filter(PC1 > -3.6 & PC1 < -3.35 | PC1 > -3.1 & PC1 < -2.85 & PC2 > -2.57 & PC2 < -2.38 ....), 

淡入Enter过渡工作正常,但是在调用<item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">true</item> 之后,淡出出口过渡仅在我当前(半透明)活动和上一个活动之间闪烁。

我设法在布局上执行常规动画,然后完成活动。但是我真的很想知道如何使用过渡框架进行活动。

2 个答案:

答案 0 :(得分:0)

在半透明活动上执行过渡时,默认exitTransition的行为是从enterTransition继承的,实际上,它会颠倒过渡,我们无法覆盖它。

幸运的是,还有另外一个属性对活动的关闭过渡起着重要作用,即returnTransition,这是在Window准备关闭时用于将视图移出场景的所需过渡。

现在而不是window.exitTransition = Fade(Fade.MODE_OUT)尝试使用

window.returnTransition =淡入淡出(Fade.MODE_OUT)

,或者您可以在 styles.xml

中定义的活动主题中覆盖它

<item name="android:windowReturnTransition">@transition/exit_transition</item>

您的 exit_transition.xml 将是

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <fade
            android:duration="@android:integer/config_shortAnimTime"
            android:fadingMode="fade_out" />
</transitionSet>

res / transition 目录中。您已经准备好摇滚了!

答案 1 :(得分:-1)

You can implement fade-in and fade-out animation by this way also.     
 Create anim folder under res folder, In anim folder create two xml file.
     -------------------------------------------------------------------------------------
     fadein.xml

     <?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000" />
     -------------------------------------------------------------------------------------

       fadeout.xml

       <?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="1.0" android:toAlpha="0.0" android:
    duration="2000" />

     -------------------------------------------------------------------------------------
     Add this on override method of onCreate and onStart.

     overridePendingTransition(R.anim.fadein, R.anim.fadeout);


     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            overridePendingTransition(R.anim.fadein, R.anim.fadeout);

            }


     @Override
        protected void onStart() {

            super.onStart();

            overridePendingTransition(R.anim.fadein, R.anim.fadeout);
           }
相关问题