我希望我的启动器活动在打开或从之前的活动返回时从右向左滑入。当它切换到另一个活动时,它当前从右向左滑动,但是当它打开或按下后退按钮时,它不会滑动。
以下是应用于我的启动器活动的样式的相关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方法可能与退出转换的工作原理有关,但如何将其应用于输入转换呢?
答案 0 :(得分:2)
如果您的活动是 AppCompatActivity ,请尝试以下操作:
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(LoginActivity.this).toBundle();
ActivityCompat.startActivity(RegisterActivity.this, intent, bundle);
答案 1 :(得分:-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>
您可以使用此方法根据要求相应地滑动您的活动。