gpt4 book ai didi

android - 取消共享元素转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:56:33 26 4
gpt4 key购买 nike

我有两个 Activity (A 和 B),当我单击一个按钮时,A 中的元素开始动画过渡到 B。但是,我想禁用从 B 返回到 A 时向后播放的相同过渡。

在问这个问题之前,我在网上查了一下,发现有setSharedElementReturnTransition(transition)setSharedElementReenterTransition(transition)两种方法。这些方法在适当的 Activity onCreate() 方法中使用 transition = null 调用,但没有起作用。

我找到的唯一取消转换的解决方案是在 onBackPressed() 中调用 finish() 而不是 super.onBackPressed()。有没有其他方法可以实现所需的行为?

总而言之,当我将向后转换设置为 null 时,没有任何改变 - 转换未被覆盖。

编辑 1. 这是一段代码:

ActivtyA.java

 public class ActivityA {

...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_A);
}

...

@Override
public void onPersonalProfileEditIconClicked() {
Intent intent = new Intent(ActivityA.this, ActivityB.class);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

View sharedView = avatarView;

String sharedElementName = getString(R.string.profile_avatar);
ActivityOptions transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation
(ActivityA.this, sharedView, sharedElementName);
startActivity(intent, transitionActivityOptions.toBundle());
} else startActivity(intent);
}
}

ActivityB.java

public class ActivityB {

...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_B);
}

...

@Override
public void onBackPressed() {
finish();
}
}

在 XML 文件(activity_A 和 activity_B)中,sharedView 具有属性 transitionName。

主题.xml

<resources>
<style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowContentTransitions">true</item>
</style>
</resources>

最佳答案

更新支持库后,取消共享元素转换是可能的,无需将 super.onBackPressed(); 更改为 finish();

您只需要将(在我的例子中)返回/重新进入过渡设置为 null 并更改 View 中的过渡名称。

getWindow().setSharedElementReturnTransition(null);
getWindow().setSharedElementReenterTransition(null);
view.setTransitionName(null);

关于android - 取消共享元素转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805396/

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