gpt4 book ai didi

android - overridePendingTransition() 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:53 25 4
gpt4 key购买 nike

我正在尝试实现一个快速的 SplashActivity,它从右向左滑入,然后随着 MainActivity 向右滑入而向左滑出。目前,动画 XML 已经到位,但它不起作用,启动画面刚刚出现,然后到主要 Activity 的过渡也不起作用。这是应用程序的开始 Activity SplashActivity。

public class SplashActivity extends Activity{

private int SPLASH_MILLISECONDS = 1000;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
setContentView(R.layout.activity_splash);
runTimer();
}

private void runTimer() {
Timer timeout = new Timer();
timeout.schedule(new TimerTask()
{
@Override
public void run()
{
runOnUiThread(new Runnable(){
@Override
public void run() {
goToMainActivity();
}
});
}
}, SPLASH_MILLISECONDS);
}

private void goToMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION );
startActivity(intent);
finish();
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
}

由于某种原因这不起作用,我做错了什么?

编辑:这是我的新 goToMainActivity() 方法,但 2 个动画仍然无效。此时我不太关心第一个动画是否正常工作,我只希望第二个动画正常工作。

private void goToMainActivity(){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
finish();
}

最佳答案

我通常从正在启动的 Activity 的 onCreate() 函数中覆盖动画,这似乎运作良好。调用者通常应该只是startActivity();不要使用 overridePendingTransition()FLAG_ACTIVITY_NO_ANIMATION 或其他任何东西。

从实际部署的代码中复制粘贴:

@Override public void onCreate(Bundle savedState)
{
overridePendingTransition(R.anim.anim_slideup, R.anim.anim_hold);
super.onCreate(savedState);

正如其他人提到的,当您覆盖 Activity 开始时的动画时,您还应该覆盖 Activity 结束时与之匹配的动画。

@Override public void finish()
{
super.finish();
overridePendingTransition(R.anim.anim_hold, R.anim.anim_slidedown);
}

关于android - overridePendingTransition() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24461683/

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