gpt4 book ai didi

带有动画的 Android startActivity

转载 作者:行者123 更新时间:2023-11-29 19:25:04 25 4
gpt4 key购买 nike

我创建了一个 activity( Activity 编号 1),其中包含 2 个 Views、一个 button 和一个 textView这两个 View 被共享到另一个activity(activity no. 2)

我使用以下代码从 activity1 开始到 activity2 共享元素:

Pair textView = new Pair<>(view1, ViewCompat.getTransitionName(view1));
Pair button = new Pair<>(view2, ViewCompat.getTransitionName(view2));

ActivityOptionsCompat transitionActivityOptions =
ActivityOptionsCompat.makeSceneTransitionAnimation(
Activity1.this, textView, button);

Intent intent = new Intent(Activity1.this, Activity2.class);
ActivityCompat.startActivity(Activity1.this, intent, transitionActivityOptions.toBundle());

当我按下 back button 时,views 动画回到 Activity1。动画停止工作在我使用以下代码Override 后退按钮之后:

@Override
public void onBackPressed(){
Intent intent = new Intent(Detailed.this, Main.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.putExtra("morph", morphButton.getMorph());
startActivity(intent);

finish();
}

startActivity 方法取消动画。

我正在努力实现这一目标,因为我想将一些变量传回Activity1。有没有办法用 startActivity 方法维护动画?

最佳答案

那是因为您在 onBackPressed 中开始了一个新 Activity ,而不是仅仅调用 finish();。您可以改用 startActivityResult 并在您的 Activity1 中设置结果。
在你的 Activity1 中使用这个:

ActivityCompat.startActivityForResult(Activity1.this, intent, yourReqCode, yourRetransitionActivityOptions.toBundle());

然后在你的 onBackPressed 中设置结果:

@Override
public void onBackPressed(){
Intent intent = new Intent();
intent.putExtra("morph", morphButton.getMorph());
setResult(RESULT_OK, intent);
finish();
}

然后在 Activity1onActivityResult 中获取结果:

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case yourReqCode:
if (resultCode == RESULT_OK) {
// fetch the result from data here
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}

关于带有动画的 Android startActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41567889/

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