gpt4 book ai didi

java - overridePendingTransition 用于平滑地滑入和滑出 Activity

转载 作者:IT老高 更新时间:2023-10-28 21:00:21 27 4
gpt4 key购买 nike

我无法弄清楚如何通过按一下按钮将 Activity 滑入和滑出。我想要的是用户按下按钮然后屏幕滑动。我想要的方式是让第一个 Activity (带有按钮的 Activity )向左滑出,而新的第二个 Activity 从右侧滑入。

使用下面的代码,当单击按钮时,当我希望第一个 Activity 向左滑出时,它会向右滑出。然后当它完成滑动时,剩下的只是一瞬间黑屏,然后第二个 Activity 只是出现并且没有滑入。

所以第一个 Activity 滑出不正确的方向,下一个 Activity 只是出现而不是滑动。我究竟做错了什么?我很难理解 XML 文件,所以听到的是下面所有内容的代码。

第一次 Activity

@Override
public void onCreate(Bundle savedInstanceState) {

playBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainMenu.this, Levels.class);
startActivity(intent);
overridePendingTransition(R.anim.enter_from_right, R.anim.exit_out_left);
}
});

第二次 Activity

@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.levels);

overridePendingTransition(R.anim.enter_from_left, R.anim.exit_out_right);

所以我认为我的一些 XML 文件可能不正确。他们来了。

enter_from_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
android:duration="600"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
</set>

enter_from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
android:duration="600"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
</set>

exit_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="-100%" >
</translate>
</set>

exit_out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >

<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
</set>

编辑从第二个 Activity 中删除 overridePendingTransition() 使得第一个 Activity 滑到左边,这就是我想要的。但是,当第一个 Activity 滑开时,它仍然只是显示黑屏,而不是第二个 Activity 从右侧滑入。

最佳答案

您无需在 startActivity() 和新 Activity onCreate() 中都覆盖动画,而只需在 startActivity( ) 调用。

您为 overridePendingTransition(int enterAnim, int exitAnim) 提供的两个 int 对应于两个动画 - 移除旧的 Activity 和添加新的。

对于您的第二个问题,我相信您的 fromXDelta 设置错误,-100% 应该一直远离屏幕的 左侧,而不是右侧,因此将其更改为100% 应该修复它。

关于java - overridePendingTransition 用于平滑地滑入和滑出 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com