gpt4 book ai didi

android - Activity 调用 onStop() 时转换共享元素中断

转载 作者:行者123 更新时间:2023-12-03 17:29:16 24 4
gpt4 key购买 nike

我从带有共享元素转换的 ActivityA ActivityB 打开。它工作正常。当我按下“返回”按钮时,共享元素同样可以正常工作,并且我看到了关闭动画。

但是,如果我按下“主页”按钮,然后返回应用程序 (ActivityB),然后单击“返回”转到 ActivityA,则转换不起作用。

三项 Activity 的情况相同。

Activity A -(工作)-> Activity B -(工作)-> Activity C

之后我开始按“返回”按钮

Activity C -(工作)-> Activity B -(不工作)-> Activity A

工作 - 这意味着共享元素转换工作,我看到动画

对于开始 Activity ,我使用

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

尝试更改 list (不工作)
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() 调用会破坏共享元素转换。但我无法避免这一点。任何帮助或想法,请

最佳答案

我通过关注 this 解决了这个问题回答。
简单地说,只需将以下代码段添加到 onStop Activity B

override fun onStop() {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q && !isFinishing) {
Instrumentation().callActivityOnSaveInstanceState(this, Bundle())
}
super.onStop()
}

关于android - Activity 调用 onStop() 时转换共享元素中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57694692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com