【问题标题】:Android 5.0 windowEnterTransition not affecting transitionAndroid 5.0 windowEnterTransition 不影响过渡
【发布时间】:2015-01-17 17:30:44
【问题描述】:

我希望我的启动器活动在打开或从上一个活动返回时从右向左滑入。目前它在切换到另一个活动时会从右向左滑动,但在打开或按下后退按钮时不会。

这是应用于我的启动器活动的样式的相关 XML:

styles.xml

    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowEnterTransition">@android:transition/slide_left</item>
    <item name="android:windowExitTransition">@android:transition/slide_left</item>
    <item name="android:windowReenterTransition">@android:transition/slide_right</item>
    <item name="android:windowReturnTransition">@android:transition/slide_left</item>

单击按钮时,我的活动将移动到下一个活动。这是我的 onClickListener:

Button register = (Button)findViewById(R.id.registerBtn);
        register.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View v) {
                Intent i = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(i, ActivityOptions.makeSceneTransitionAnimation(LoginActivity.this).toBundle());
            }
        });

我相信 ActivityOptions.makeSceneTransitionAnimation 方法可能与退出转换起作用的原因有关,但是如何将其应用于进入转换?

【问题讨论】:

  • 你发现问题了吗?当主要活动启动时,我也遇到了为 FAB 设置动画的问题
  • @Andrea 不,抱歉。我大约一年前放弃了我的这个项目,所以我没有机会解决这个问题。

标签: android android-transitions


【解决方案1】:

如果您的活动是 AppCompatActivity,请尝试以下操作:

Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(LoginActivity.this).toBundle();
ActivityCompat.startActivity(RegisterActivity.this, intent, bundle);

【讨论】:

    【解决方案2】:

    你可以用它来开始一个新的活动与过渡

    startActivity(new Intent(this, NewActivity.class));
    overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
    

    创建文件 res/anim/slide_in_right.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="false" >
         <translate android:duration="1000" android:fromXDelta="100%" android:toXDelta="0%" />
         <alpha android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" />
    </set>
    

    创建文件 res/anim/slide_out_left.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
          android:shareInterpolator="false" >
          <translate android:duration="2000" android:fromXDelta="0%" android:toXDelta="-100%"/>
          <alpha android:duration="2000" android:fromAlpha="1.0" android:toAlpha="0.0" />
    </set>
    

    您可以使用此方法根据要求使您的活动滑动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      相关资源
      最近更新 更多