如何从 activity 第 3 位过渡到第 1 位?
How to transition from activity 3rd to 1st?
我在活动之间 Shared Element Activity Transition
遇到问题。我有 MainActivity,它有一个带框的 recyclerview
(recyclerview.horizontal)。单击每个框将转到相应的 activity。当我点击一个框时出现的问题,我切换到第二个 activity,在第二个 activity 我按一个按钮切换到第三个 activity。在这里,我向右滑动 return 到带有过渡的 MainActivity,我希望它向右过渡到与 MainActivity 中的回收视图中的第 3 个 activity 相对应的框。所以,我的目的是:
MainActivity (Shared Element Activity Transition)-> Second Activity ->
Third Activity (Shared Element Activity Transition)-> MainActivity
(exactly scroll to position for Third Activity in RecyclerView).
My MainActivity
我希望每个人都给我解决方案。非常感谢。
您可以在 SecondActivity 开始时使用 startActivityForResult 而不是 startActivity ThirdActivity.Like this :
Intent i = new Intent(this, ThirdActivity.class);
startActivityForResult(i, 1);
当你完成第三次时Activity
Intent returnIntent = new Intent();
returnIntent.putExtra("activity_finish",true);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果你使用 startActivityForResult() 那么它会在启动它的 Activity 中给出回调,所以一旦 ThirdActivity 完成后,它将 return 到 SecondActivity.Where 中的 onActvityResult() 你必须检查 result_code 并请求这样的代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
boolean isActivityFinish=data.getBooleanExtra("activity_finish");
if(isActivityFinish){
// finish your Second Activity here
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
更多信息:How to manage `startActivityForResult` on Android?
我在活动之间 Shared Element Activity Transition
遇到问题。我有 MainActivity,它有一个带框的 recyclerview
(recyclerview.horizontal)。单击每个框将转到相应的 activity。当我点击一个框时出现的问题,我切换到第二个 activity,在第二个 activity 我按一个按钮切换到第三个 activity。在这里,我向右滑动 return 到带有过渡的 MainActivity,我希望它向右过渡到与 MainActivity 中的回收视图中的第 3 个 activity 相对应的框。所以,我的目的是:
MainActivity (Shared Element Activity Transition)-> Second Activity -> Third Activity (Shared Element Activity Transition)-> MainActivity (exactly scroll to position for Third Activity in RecyclerView).
My MainActivity 我希望每个人都给我解决方案。非常感谢。
您可以在 SecondActivity 开始时使用 startActivityForResult 而不是 startActivity ThirdActivity.Like this :
Intent i = new Intent(this, ThirdActivity.class);
startActivityForResult(i, 1);
当你完成第三次时Activity
Intent returnIntent = new Intent();
returnIntent.putExtra("activity_finish",true);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果你使用 startActivityForResult() 那么它会在启动它的 Activity 中给出回调,所以一旦 ThirdActivity 完成后,它将 return 到 SecondActivity.Where 中的 onActvityResult() 你必须检查 result_code 并请求这样的代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
boolean isActivityFinish=data.getBooleanExtra("activity_finish");
if(isActivityFinish){
// finish your Second Activity here
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
更多信息:How to manage `startActivityForResult` on Android?