我需要有关活动之间转换的帮助:
我有两个活动A和B,两个都有一个具有相同图像列表的ViewPager.每个页面都有与一个ImageView的transitionName
等于image_x其中X是页面的索引.
A启动活动B调用ActivityOptionsCompat.makeSceneTransitionAnimation
,输入转换完全正常.
问题如下:当我关闭活动B时,退出转换不会在B的相同位置初始化活动A的视图寻呼机.
当用户关闭B时,后者在结果中设置当前页面位置.在onActivityResult
活动A中,我调用了setCurrentItem
,并且行为显示在gif中.
有没有办法在退出转换开始之前更新活动A?
如果您使用setCurrentItem
in onActivityReenter
而不是in onActivityResult
(在您的中Activity
A
),您应该能够实现这一目标.
请相信你:
在完成之前Activity
B
,设置结果(使用setResult(int resultCode)
或setResult(int resultCode, Intent data)
)
调用supportFinishAfterTransition()
(或finishAfterTransition()
)代替常规finish()
来"关闭" Activity
B
.
总结一下:
在Activity
B
:
public void close(){ Intent data = new Intent(); data.putExtra(KEY_CURRENT_ITEM, mFullscreenViewPager.getCurrentItem()); setResult(RESULT_CODE, data); supportFinishAfterTransition(); }
在Activity
A
:
@Override public void onActivityReenter(int resultCode, Intent data) { super.onActivityReenter(resultCode, data); if (data.hasExtra(KEY_CURRENT_ITEM)){ mViewPager.setCurrentItem(data.getIntExtra(KEY_CURRENT_ITEM, 0), false); } }