当前位置:  开发笔记 > 编程语言 > 正文

退出转换前更新源活动

如何解决《退出转换前更新源活动》经验,为你挑选了1个好方法。

在此输入图像描述

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

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

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

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

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

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



1> Bartek Lipin..:

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

请相信你:

    在完成之前ActivityB,设置结果(使用setResult(int resultCode)setResult(int resultCode, Intent data))

    调用supportFinishAfterTransition()(或finishAfterTransition())代替常规finish()来"关闭" ActivityB.


总结一下:

ActivityB:

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

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);
    }
}

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有