我在两次活动之间遇到Shared Element Activity Transition
的问题。我有MainActivity,它有一个带有框的recyclerview
(recyclerview.horizontal)。单击每个框将转到相应的活动。当我单击一个框时,出现问题,我切换到第二个活动,在第二个活动中,我按下按钮以切换到第三个活动。在这里,我向右滑动以返回带有过渡的MainActivity,我希望它向右过渡到与MainActivity中recyclerview中的第3个活动相对应的框。所以,我的目的是:
MainActivity(共享元素活动转换)->第二个活动-> 第三个活动(共享元素活动转换)-> MainActivity (精确滚动到RecyclerView中“第三项活动”的位置。
My MainActivity 我希望每个人都能为我提供解决方案。非常感谢。
答案 0 :(得分:0)
要启动ThirdActivity时,可以在SecondActivity中使用startActivityForResult而不是startActivity。
Intent i = new Intent(this, ThirdActivity.class);
startActivityForResult(i, 1);
当您完成ThirdActivity时
Intent returnIntent = new Intent();
returnIntent.putExtra("activity_finish",true);
setResult(Activity.RESULT_OK,returnIntent);
finish();
如果您使用 startActivityForResult(),那么它将在启动它的Activity中提供回调,因此ThirdActivity一旦完成,它将返回到 onActvityResult() SecondActivity。您必须在其中检查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
}
}
}