当Activity调用onStop()时,过渡共享元素中断。

问题描述 投票:3回答:1

我从ActivityA ActivityB打开,并使用共享元素过渡。它的工作正常。当我按下 "Back "按钮时,共享元素同样工作正常,我看到关闭动画。

但是如果我按下 "Home "按钮,然后我返回到应用程序(ActivityB),然后我按下 "Back "按钮回到ActivityA,过渡不工作。

同样的情况,有三个活动。

活动A -(工作)-> 活动B -(工作)-> ActivityC

之后,我开始按 "返回 "键。

活动C -(工作)-> 活动B -(DONT WORK)-> 活动A

工作 - 这意味着共享的元素过渡工作,我看到动画

在开始活动时,我使用

ActivityOptionsCompat options = ActivityOptionsCompat
                        .makeSceneTransitionAnimation(getActivity(), itemView, transitionName);
startActivity(intent, options.toBundle());

试着改变Manifest (DONT WORK)

android:name=".ActivityB"
android:launchMode="singleTask"
android:parentActivityName=".ActivityA"

尝试保存共享元素(不工作

setEnterSharedElementCallback(new SharedElementCallback() {
            @Override
            public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) {
                if (names.size() > 0)
                    mSharedElementsNames.addAll(names);
                else
                    names.addAll(mSharedElementsNames);

                if (sharedElements.size() > 0)
                    mSharedElementsMap.putAll(sharedElements);
                else
                    sharedElements.putAll(mSharedElementsMap);
            }
        });

我注意到在最小化应用程序后,当按 "返回 "键时,onMapSharedElements()没有被调用。否则调用就会发生。

我猜测onStop()的调用会破坏共享元素的过渡。但我无法避免这个问题。任何帮助或想法,请

android animation android-activity android-lifecycle shared-element-transition
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.