退出转换前更新源活动

fra*_*ran 16 android android-animation android-viewpager android-transitions

在此输入图像描述

我需要有关活动之间转换的帮助:

我有两个活动A和B,两个都有一个具有相同图像列表的ViewPager.每个页面都有与一个ImageView的transitionName等于image_x其中X是页面的索引.

A启动活动B调用ActivityOptionsCompat.makeSceneTransitionAnimation,输入转换完全正常.

问题如下:当我关闭活动B时,退出转换不会在B的相同位置初始化活动A的视图寻呼机.

当用户关闭B时,后者在结果中设置当前页面位置.在onActivityResult活动A中,我调用了setCurrentItem,并且行为显示在gif中.

有没有办法在退出转换开始之前更新活动A?

Bar*_*ski 7

如果您使用setCurrentItemin onActivityReenter而不是in onActivityResult(在您的中ActivityA),您应该能够实现这一目标.

请相信你:

  1. 在完成之前ActivityB,设置结果(使用setResult(int resultCode)setResult(int resultCode, Intent data))
  2. 调用supportFinishAfterTransition()(或finishAfterTransition())代替常规finish()来"关闭" ActivityB.

总结一下:

ActivityB:

public void close(){
    Intent data = new Intent();
    data.putExtra(KEY_CURRENT_ITEM, mFullscreenViewPager.getCurrentItem());
    setResult(RESULT_CODE, data);
    supportFinishAfterTransition();
}
Run Code Online (Sandbox Code Playgroud)

ActivityA:

@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);
    }
}
Run Code Online (Sandbox Code Playgroud)